Excel 除非特定工作表处于活动状态,否则VBA代码不起作用
如果某些单元格符合条件,我希望剪切行并将其移动到另一个工作表。当“交易”工作表处于活动状态时,以下代码起作用;但是我有 “运行时错误1004” 如果我在其他工作表上运行它Excel 除非特定工作表处于活动状态,否则VBA代码不起作用,excel,vba,Excel,Vba,如果某些单元格符合条件,我希望剪切行并将其移动到另一个工作表。当“交易”工作表处于活动状态时,以下代码起作用;但是我有 “运行时错误1004” 如果我在其他工作表上运行它 Sub GetMarketingRows() Dim TradingStock As Worksheet Dim r As Long Dim AllItems As Range Set TradingStock = Worksheets("Trading") Set AllItems = TradingStock.Rang
Sub GetMarketingRows()
Dim TradingStock As Worksheet
Dim r As Long
Dim AllItems As Range
Set TradingStock = Worksheets("Trading")
Set AllItems = TradingStock.Range("A1", Range("A1").End(xlDown))
For r = AllItems.Rows.Count To 2 Step -1
If (TradingStock.Cells(r, 8) Like "Marketing" Or Cells(r, 7) Like "F-Marketing") Then
TradingStock.Rows(r).EntireRow.Cut Destination:=Worksheets("Marketing").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
TradingStock.Rows(r).EntireRow.Delete
End If
Next r
End Sub
用
Set AllItems = TradingStock.Range("A1", TradingStock.Range("A1").End(xlDown))
第二个Range()
的作用域是ActiveSheet
此外,这需要修复
Destination:=Worksheets("Marketing").Cells( AllItems.Rows.Count, 1)
由于您的
行.Count
也在使用ActiveSheet
您没有使用工作表引用限定此范围对象:范围(“A1”).End(xlDown)