私はかなりプログラミング初心者で、さらにVBAの方が新しいです。ダイナミックセル範囲にシンプルなコンテンツを追加するVBA
「A2:Last_Relevant_Cell_In_A」の「小売業者」と「小売業者名」のスプレッドシートの先頭に列を追加しようとしています。ここで
は、私がこれまで持っているものです。
Sub AddRetailerName()
Dim WS_Target As Worksheet
Dim WS_Target_Lastrow As Long
Set WS_Target = Worksheets("Sheet1")
'Find last row of WS_Target
WS_Target_Lastrow = WS_Target.Cells.Find("*", [A1], , , _
xlByRows, xlPrevious).Row
'find last column of WS_Target
WS_Target_Lastcol = WS_Target.Cells.Find("*", [A1], , , _
xlByColumns, xlPrevious).Column
Range("A:A").EntireColumn.Insert
Range("A1").FormulaR1C1 = "Retailer"
Range(Cells(2, 1), Cells(WS_Target_Lastcol, 1)).FormulaR1C1 = "RetailerName"
End Sub
これが唯一の "A1:A6" にコンテンツを挿入しています。挿入された情報は正しいですが、スプレッドシートに見つかった行数(この例では950)を動的に挿入する必要があります。
どのように私はこれを修正することができますか?
注:この操作は、数回のクリック(VBAなし)で簡単に完了できますが、20回程度のスプレッドシートで一度に使用する予定です。
ありがとうございました。あなたのバージョンのコードはほぼ動作しました。私はもともとコンパイルエラーがありました。 WS_Target_Lastcol = .Find( "*"、[A1]、、))...コード行に '.Find'の前に '.Cells'を追加した後に動作します。いずれにせよ、これは大きな助けとなりました!同じように動作するさまざまなバージョンのコードをレイアウトしていただければ幸いです。少し実験した後、私は後者を好むことが分かった。おそらくそれはより簡潔に感じるので、それは私だけです。再度、感謝します! –
@JohnSmith - おっと - どのように恥ずかしい!誰も私の間違いに気付かないように私は答えを編集しました。 – YowE3K
@ YowE3K Lol。心配ない!それは、コード内で何が起こっているのかを知っていることを私に思い出させ、自分自身に証明しました。再度、感謝します! –