返回列表 上一主題 發帖

[發問] 請問VBA有辦法達成 輸入數量 就打幾個數量的文字出來嗎?

回復 1# starry1314


    是這樣嗎?
  1. Sub 巨集1()
  2. Rng = [B3]
  3. If Rng = "" Then
  4.     MsgBox "請輸入數量"
  5.     Exit Sub
  6. End If
  7. For I = 1 To Rng
  8.     Cells(I + 6, 1) = [C3]
  9. Next
  10. End Sub
複製代碼

TOP

回復 1# starry1314

倘若用工作表事件則可以把下面程序貼到工作表的程序中,不用按按鈕就可達成自動化
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Address = [B3].Address Then
  3.     If Target = "" Then
  4.         MsgBox "請輸入數量"
  5.         Exit Sub
  6.     End If
  7.     Application.EnableEvents = False
  8.     If [A7] <> "" Then
  9.         Range("A7:" & Cells(Rows.Count, 1).End(xlUp).Address) = ""
  10.     End If
  11.     For I = 1 To Target
  12.         Cells(I + 6, 1) = Target.Offset(0, 1)
  13.     Next
  14.     Application.EnableEvents = True
  15. End If
  16. End Sub
複製代碼

TOP

回復 5# starry1314


    Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = [B3].Address Then'這句Target.Address是指觸動的儲存格位址,如果是 [B3].Address,這個儲存格的位址如果是Target的位址就執行 If 成立下的程式碼,所以這裡的B3是可以變更的
但這裡不能是 If Target = [B3] Then簡略掉Address則是讀到"值"(.Value),除非你用到的是值(.Value)的部份
因為Target已經是設定是一個Range物件,則也可以利用Range的屬性
例如可以讀取"行"Target.Row
讀取列Target.Column
讀取值Target.Value或Target表示

TOP

        靜思自在 : 吃苦了苦、苦盡廿來,享福了福、福盡悲來。
返回列表 上一主題