エクセルVBAにてご教授をお願い致します。 添付のように入力データを表へ転記したいのですがどのようにすればよろしいでしょうか?
エクセルVBAにてご教授をお願い致します。 添付のように入力データを表へ転記したいのですがどのようにすればよろしいでしょうか? O列6行目よりデータを入力してそのデータを左の表に転記したいのですが表の最終行が32行までなのでそこまで入ったら隣の列に、またそれが32行まで入ったら隣にと列を移していきたいです。表の入力は10行目からになります。 また表のスタートは8,9行目に値が入ってる場合その下からです。 更にそのまま続きで転記を行う場合は添付図右のように一列空いた状態で入れて行きたいです。 申し訳ありませんが教えてください。
Excel | Visual Basic・70閲覧・50
ベストアンサー
以下のようなものでしょうか?解釈が間違っているようであれば、ごめんなさい。 ・「Private Sub CommandButton1_Click()」はACTIVEXのボタンの場合です。「データ」ボタンに合わせて設定してください。 ・データ数はチェックしていませんのでご注意ください。 Private Sub CommandButton1_Click() Const iRowsUnit As Long = 23 ''1列でのデータ設定行 Dim iSetColumn As Long, iLastRow As Long Dim iRow As Long, ii As Long ''設定開始列を決める。 iSetColumn = Cells(8, "N").End(xlToLeft).Column With Cells(10, "N").End(xlToLeft) If .Column > iSetColumn Then iSetColumn = .Column + 2 End If End With ''設定データ範囲の最終行を設定する。ない場合は処理を終了する。 iLastRow = Cells(Rows.CountLarge, "O").End(xlUp).Row If iLastRow < 6 Then MsgBox "設定するデータがありません。", vbCritical + vbOKOnly Exit Sub End If ''10行目~32行目の範囲でデータを設定する。 iRow = 10 For ii = 6 To iLastRow Step iRowsUnit Cells(10, iSetColumn).Resize(iRowsUnit).Value = Cells(ii, "O").Resize(iRowsUnit).Value iRow = iLastRow + iRowsUnit iSetColumn = iSetColumn + 1 Next ii End Sub
質問者からのお礼コメント
早急なご回答感謝致します!有難うございました!!
お礼日時:6/30 18:16