2

B4:B から数式をコピーするために他のシートで再利用できる単一のマクロを Excel で作成したいと思いますか? 行番号 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
   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 に答える
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 に答える