我有一段代码可以自动填充公式直至最后一行。我希望这段代码可以在两张表(具有不同的范围)上运行,并在单独的控制表上显示一个按钮。
问题是,当我从控制表运行宏时,它会影响控制表,即使我在代码中指定了目标表。有办法解决这个问题吗?
Sub FormulaFill()
Dim DataLR As Long
DataLR = Worksheets("Data").UsedRange.Find("*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
Range("I2:M2").AutoFill Destination:=Range("I2:M" & DataLR)
Dim DataKeywordLR As Long
DataKeywordLR = Worksheets("data keyword").UsedRange.Find("*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
Range("I2").AutoFill Destination:=Range("I2:" & DataKeywordLR)
答案1
您的原始代码引用了其他工作表以分配DataLR
和,DataKeywordLR
但没有对执行自动填充的后续行执行此操作。因此,您需要添加对执行自动填充的两行的引用。解决方案可能如下所示:
Sub FormulaFill()
Dim DataLR As Long
DataLR = Worksheets("Data").UsedRange.Find("*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
Worksheets("Data").Range("I2:M2").AutoFill Destination:=Worksheets("Data").Range("I2:M" & DataLR)
Dim DataKeywordLR As Long
DataKeywordLR = Worksheets("data keyword").UsedRange.Find("*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
Worksheets("data keyword").Range("I2").AutoFill Destination:=Worksheets("data keyword").Range("I2:" & DataKeywordLR)
Worksheets
注意每个块中之前添加的范围。