我想工作變更宏申請整個列。循環如果語句以及多個數據列表選擇後運行宏
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(True, True) = "$P$1" Then Select Case Target Case "Keep - no action" Call KeepNoAction Case Else Selection.ClearContents End Select End If End Sub
調用的宏, 「KeepNoAction」 我會把它想循環多列/行:
Sub KeepNoAction() If Range("P1").Value = "Keep - no action" Then Range("N1").Select Selection.Copy Range("S1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.AutoFill Destination:=Range("S1:AB1"), Type:=xlFillDefault Range("S1:AB1").Select Else End If If Range("P2").Value = "Keep - no action" Then Range("N2").Select Selection.Copy Range("S2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.AutoFill Destination:=Range("S2:AB2"), Type:=xlFillDefault Range("S2:AB2").Select End If If Range("P3").Value = "Keep - no action" Then Range("N3").Select Selection.Copy Range("S3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.AutoFill Destination:=Range("S3:AB3"), Type:=xlFillDefault Range("S3:AB3").Select End If
-2
A
回答
0
你改變P列 「保留 - 不採取行動」,那麼你真的需要循環而不是僅僅使用target.row?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Integer
If Target.Column = 16 Then
If Target = "Keep - no action" Then
r = Target.Row
Cells(r, "S").Value = Cells(r, "N").Value
Cells(r, "S").AutoFill Destination:=Range("S" & r & ":AB" & r), Type:=xlFillSeries 'Type:=xlFillDefault
End If
If Target = "Something else" Then
MsgBox "Do something else"
End If
End If
End Sub
這是一個循環,你可以工作:
Sub DoIt()
Dim LstRw As Long, Rng As Range, c As Range
LstRw = Cells(Rows.Count, "P").End(xlUp).Row
Set Rng = Range("P1:P" & LstRw)
For Each c In Rng.Cells
If c = "Keep - no action" Then
r = c.Row
Cells(r, "S").Value = Cells(r, "N").Value
Cells(r, "S").AutoFill Destination:=Range("S" & r & ":AB" & r), Type:=xlFillSeries 'Type:=xlFillDefault
End If
Next c
End Sub
+0
上面的代碼工作太好了!非常感謝:)你是一個拯救生命的人。 – VBAgocode
+0
也許將其標記爲答案,因此它不會像未答覆一樣彈出。 – Davesexcel
相關問題
- 1. 通過MySQL循環選擇數據與PHP如果語句
- 2. 我可以循環選擇語句的列表嗎?
- 3. 從兩個表中選擇列以及'Like'語句
- 4. 根據多次選擇的結果運行if語句
- 5. 使用foreach循環和選擇語句創建多個數組
- 6. 如果語句後跟循環
- 7. 如何循環選擇語句?
- 8. 如何在我的for循環宏中包含多個語句?
- 9. for循環,如果語句
- 10. 如果語句內循環
- 11. SQL在不同表中的一列中選擇語句循環
- 12. PL/SQL/Java - SQL爲循環選擇if語句和列表
- 13. 選擇語句中的多個表以獲得單列
- 14. 選擇語句以循環另一個javascript
- 15. MySql如果然後在選擇語句
- 16. mysql如果然後選擇語句
- 17. 循環和然後運行宏
- 18. foreach循環語句。如何預先選擇一個選項
- 19. 如果語句確保了循環數
- 20. Excel宏循環表選擇問題
- 21. 像foreach循環重複選擇語句
- 22. 循環代碼多次運行宏
- 23. SQL根據另一個選擇語句從表中選擇列
- 24. 如果語句選擇開關語句
- 25. 對於內部不運行的循環如果語句Excel VBA
- 26. 如果在Python中循環停止,只運行語句一次
- 27. 兩個選擇多列語句
- 28. 運行宏/查詢後MS Access取消選擇列表框
- 29. 最後如果語句沒有運行
- 30. 多個選擇語句
請不要只是告訴我們,'你會Like'。請向我們展示「你試過了什麼」和「你在哪裏卡住」以及「你會得到什麼錯誤」 –
'如果target.column = 16那麼當你改變列P時會啓動# – Davesexcel