• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA Do Until内で値の貼り付けができない)

VBAのDo Until内で値の貼り付けができない

このQ&Aのポイント
  • Excel2003を使用しており、VBAのDo Until内で値の貼り付けができない問題に遭遇しています。
  • 具体的には、名簿に「公」という文字が含まれている場合、その3つ左の名前をD27に値のみコピーペーストし、D27が既に値を持っている場合はD28に貼り付ける作業をD37まで繰り返しています。
  • しかし、Do Untilコードを使用しているにもかかわらず、なぜか値の貼り付けができなくなります。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.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を使わないコードを目指しましょう。

usny-stk
質問者

お礼

ご丁寧にありがとうございます。 このままコピーで使用できます(感動) お忙しいところ ありがとうございました!!

関連するQ&A

専門家に質問してみよう