将 vba 限制到指定工作表

将 vba 限制到指定工作表

我有一段代码可以自动填充公式直至最后一行。我希望这段代码可以在两张表(具有不同的范围)上运行,并在单独的控制表上显示一个按钮。

问题是,当我从控制表运行宏时,它会影响控制表,即使我在代码中指定了目标表。有办法解决这个问题吗?

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注意每个块中之前添加的范围。

相关内容