- 締切済み
入力した指定のセル範囲をコマンドボタンによってコピー・貼り付けしたい
急いでいます。 エクセル2003を使っているのですが、進まなくなってしまい困っています。 原本というシートのB39~U48にかけて簡単な表とコマンドボタン(”表追加”)を作成しました。 この表をコマンドボタンを押す度に、48行目以降に1行間隔置きでどんどんコピーして貼り付けが行われるように、VBAを組みたいのですがうまくいかず困っています。 作成した表がずれない様にうまく貼りつけしたいです。 どなたか知恵を貸してください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- gatt_mk
- ベストアンサー率29% (356/1220)
質問の内容だけでは具体的にどのようにしたいのかがよくわかりません。 「作成済の表と同様の計算式などを最終行から1行空けて次行に追加したい」という事だと解釈すると方法としては 1.最終行の行番号を取得する。 2.B39からU48までをセルをコピーする。 3.最終行から1行空けたの次の行からコピーしたセル内容を複写する。 と言う方法で解決しませんか? 入力されている最終行の行番号を取得するにはSpecialCells(xlCellTypeLastCell)メソッドで値が入力されている最後のセルを選択して、その行番号を見つければいいかと思います。 最終行の行番号を取得するVBAとして参考までに Dim myLastCell As Range Dim r As Long myLastCell = Range("A1").SpecialCells(xlCellTypeLastCell) r = myLastCell.Row ただし一度入力してデータ削除したセルがその表より下の行にあるとSpecialCells(xlCellTypeLastCell)メソッドではそこを指してしまうので、その場合の回避処理が必要になります。 その行の表内で本来値が入力されているはずの列の値が""であれば、Findメソッドなどを使って1行上を指し示すような処理を追加する必要があるかと思います。 そのあたりはご自身で勉強してみてください。
- pbforce
- ベストアンサー率22% (379/1719)
どこからコピーしてどこに貼り付けますか?1行おきとはコピーするのが?貼り付けるのが?うまく行かないのはどの動きでしょうか?作成した表がずれると言うのはどういった現象でしょうか? うまく動かない部分のVBAを公表することは出来ませんか?