2

我想在 excel 中创建一个宏,我可以在其他工作表上重复使用它来从 B4:B 复制公式?直到第 X 行。

我将把多行数据粘贴到几个不同工作表的 A 列中。我将在每张表上都有一个按钮,我想将其标记为“复制公式”。我已经编写了公式来将文本解析为 3 到 250 列,具体取决于工作表。我希望宏从 B4 突出显示到 Selection.End(xlToRight) 然后将该选择复制到 A 列中的最后一行数据。

我正在考虑这样的事情,但我在第 6 行不断收到错误消息。

    Dim strCurrentSheet As String
    Dim LastRow As Integer
    Dim LastCol As Integer
    LastRow = Range("A4").End(xlDown).Row
    LastCol = Range("B4").End(xlToRight).Column
    Range(Cells(4, 2), Cells(4, LastCol)).AutoFill _ 
    Destination:=Range(Cells(5, 2), Cells(LastRow, LastColumn))
4

3 回答 3

1

与其使用 VBA 宏,不如从一开始就考虑使用 Excel 表格(插入->表格)——它或多或少地内置了以下功能:

如果您在表格中的空列(或旁边的相邻列)中输入公式,Excel 将自动将该公式应用于所有行。如果您在任何时候添加/复制数据,它会自动扩展表格,因此也会在所有列中应用公式!

于 2013-01-15T07:31:03.403 回答
0

...我没有过多地测试这段代码,但这至少应该给你一个很好的起点,让你走上自己的路:

Sub test()

  ' Get the last row and column on the sheet - store them in the variables
  Dim LastRow As Integer
  Dim LastCol As Integer
  LastRow = Range("A1").End(xlDown).Row
  LastCol = Range("B4").End(xlToRight).Column

  ' Copy cells B4:B[LastCol]  to  cells B4:[LastRow][LastCol]
  Range(Cells(2, 4), Cells(2, LastCol)).AutoFill _
         Destination:=Range(Cells(2, 4), Cells(LastRow, LastCol))

End Sub

希望能帮助到你

于 2013-01-14T22:02:30.130 回答
0
   Dim colABottom As Range
    Set colABottom = Range("A1").End(xlDown)

    Dim colEnd As Range
    Set colEnd = Range("A1").End(xlToRight)

    Dim lColStart As Long
    lColStart = 2
    Dim lColEnd As Long
    lColEnd = colEnd.Column

    Dim lRowStart As Long
    lRowStart = 1
    Dim lRowEnd As Long
    lRowEnd = colABottom.Row

    Dim startRange As Range
    Set startRange = Range("B1")

    Dim sourceRange As Range
    Set sourceRange = Range(startRange, startRange.End(xlToRight))

    Dim destinationFillRange As Range
    Set destinationFillRange = Range(Cells(lRowStart, lColStart), Cells(lRowEnd, lColEnd))

    sourceRange.AutoFill Destination:=destinationFillRange
于 2013-01-15T01:59:29.673 回答