- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA Do Until内で値の貼り付けができない)
VBAのDo Until内で値の貼り付けができない
このQ&Aのポイント
- Excel2003を使用しており、VBAのDo Until内で値の貼り付けができない問題に遭遇しています。
- 具体的には、名簿に「公」という文字が含まれている場合、その3つ左の名前をD27に値のみコピーペーストし、D27が既に値を持っている場合はD28に貼り付ける作業をD37まで繰り返しています。
- しかし、Do Untilコードを使用しているにもかかわらず、なぜか値の貼り付けができなくなります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
本当は、「ここをこう直す」と言う感じでアドバイスできればよかったんですが、Selectを多用されているので追いづらくって断念しました。 代わりに、提示された説明とコードから、こういうことがしたいのかなと推測して作ってみました。 Sub Sample() Dim nRow As Long If Selection.Value = "公" Then '値貼り付け位置を確認 nRow = Range("D38").End(xlUp).Row If nRow = 37 Then MsgBox ("D37まで書き込み済み") Exit Sub ElseIf nRow < 27 Then nRow = 26 End If '値をD27以下の空セルに代入 Range("D" & nRow + 1) = ActiveCell.Offset(0, -3).Value End If '選択セルを一行下げる(元から入っているので残しました) ActiveCell.Offset(1).Select End Sub VBAで値のコピーをする場合、いちいちSelectする必要はありません。 まずはSelection.CopyとSelection.Pasteを使わないコードを目指しましょう。
お礼
ご丁寧にありがとうございます。 このままコピーで使用できます(感動) お忙しいところ ありがとうございました!!