

下記のマクロを実行したときに、Sheets("提供データ")のD列の7327行目はブランクなのに、Sheets("jyoken")のa列の7326行目に計算式がコーピされるのはなぜでしょうか。
ちなみにSheets("jyoken")のa列の2行目に=提供データ!D3という計算式
が入っています。
Sheets("jyoken")のa列の7326行目には計算式がコーピしないようにするにはどこを修正すればよいのでしょうか教えてください。
Sub 式複写()
Dim gyo, burank
ActiveWorkbook.PrecisionAsDisplayed = False
Sheets("提供データ").Select
Range("a2").Select
gyo = 2
burank = ""
Do
gyo = gyo + 1
burank = Worksheets("提供データ").Cells(gyo, 4).Text
Loop While burank <> ""
'
Sheets("jyoken").Select
Range("A2").Select
Selection.Copy
Range(Cells(3, 1), Cells(gyo - 1, 1)).Select '複写先
ActiveSheet.Paste
End Sub
No.4ベストアンサー
- 回答日時:
ANo.3さんへ
sheet("提供データ")以外がカレントのとき、エラーになるので、
Sub 複写()
Dim d As Integer
ActiveWorkbook.PrecisionAsDisplayed = False
d = Sheets("提供データ").Range("D65536").End(xlUp).Row
Sheets("提供データ").Range(Sheets("提供データ").Cells(2, "D"), Sheets("提供データ").Cells(d, "D")).Copy Sheets("jyouken").Range("A2")
End Sub
または
Sub 複写()
Dim d As Integer
ActiveWorkbook.PrecisionAsDisplayed = False
Sheets("提供データ").Select
d = Range("D65536").End(xlUp).Row
Range(Cells(2, "D"), Cells(d, 4)).Copy Sheets("jyouken").Range("A2")
End Sub
とかにした方が良いと思います。
No.3
- 回答日時:
質問ではコードを長々と読まされたが、
Sub 複写()
Dim d
ActiveWorkbook.PrecisionAsDisplayed = False
d = Worksheets("提供データ").Range("D65536").End(xlUp).Row
Worksheets("提供データ").Range(Cells(2, "D"), Cells(d, "D")).Copy Sheets("jyouken").Range("A2")
End Sub
これでたぶん実質同じではないの。
質問のエラー追及も必要なくなるのでは。
また内容は(プロシジュアー名の)式複写ではなく、式も値も書式も貼り付けますよ。
No.2
- 回答日時:
提供データが1個の場合があるなら問題が起こるので、ifで囲った方がいいかも・・・
gyo>4の意味は、Sheets("提供データ")の最初のブランクがD4の場合、つまりgyo=4の場合は複写する必要が無いと言う意味です。
If gyo > 4 Then
Sheets("jyoken").Select
Range("A2").Select
Selection.Copy
Range(Cells(3, 1), Cells(gyo - 2, 1)).Select '複写先
ActiveSheet.Paste
End If
p.s.
提供データが無い場合(Sheets("提供データ")のD3がブランクの場合)は無いんですよね?
No.1
- 回答日時:
Do Loopを抜けたときにgyoの値は、7327になっています。
したがって7327-1の7326行目までコピーされます。7325行目までコピーするのなら、
Range(Cells(3, 1), Cells(gyo - 2, 1)).Select '複写先
これでいいかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ExcelVBAについて。 2 2022/12/10 20:08
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) excelVBAについて。 4 2022/11/21 16:15
- Excel(エクセル) excelVBAについて。 8 2022/12/11 13:47
- Visual Basic(VBA) excelVBAについて。 1 2022/11/30 06:16
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
ユーザーフォームのテキストボ...
-
メモ帳(テキストデータ)をExc...
-
配列でデータが入っている要素...
-
【エクセル】測定時間がバラバ...
-
チェックサムの実装方法について
-
VBの引数について
-
すみません、これってどういう...
-
excelマクロについて
-
Excelシートの読み込み
-
ExcelからSQLサーバへデータを...
-
C# でDataTableの更新を高速化...
-
多量のSUMIF式を軽くしたい
-
この行は既に別のテーブルに属...
-
GETはできるがPOSTができない、...
-
C# ソケット通信でデータ受信時...
-
VBA マクロ 集計の方法
-
CString型の文字列連結について
-
二分探索の平均探索回数
-
家計簿プログラム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
多量のSUMIF式を軽くしたい
-
配列でデータが入っている要素...
-
メモ帳(テキストデータ)をExc...
-
ユーザーフォームのテキストボ...
-
特定のデータの抽出方法を教え...
-
二分探索の平均探索回数
-
EXCELVBAでSQLserverからデータ...
-
Accessで該当データにフラグを...
-
VBA 空白セルを削除ではない方...
-
この行は既に別のテーブルに属...
-
Excel VBAでのオートフィルター...
-
[C言語] コメント文字列を無視...
-
エクセルで2つの時系列のデー...
-
アクセス2000で画像データ...
-
CString型の文字列連結について
-
カンマからスラッシュに
-
VBにおいてフォーム間の変数の...
-
<VB>String→Object
おすすめ情報