重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

以下コードをご覧ください
Aブックの情報をBブックへ転記しています
その際に、Bブックへ転記した際に、特に上書きしていないのに
されています

上書きされないようにするには、どうしたら良いですか?
※Bブックの上書きはハンドにて実施したいです

【補足】
マクロは、コントーロールブックというブックに書いています

Aブックのファイルパス↓以下セルに書いています
filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(3, 1)

Bブックのファイルパス⇒↓以下セルに書いています
ilepath2 = ThisWorkbook.Worksheets("Sheet1").Cells(6, 1)

【コード】

Sub 台帳へ転記()


Dim filepath1 As String

Dim wb1 As Workbook

Dim ws1 As Worksheet



filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(3, 1)

Set wb1 = Workbooks.Open(filepath1)

Set ws1 = wb1.Worksheets("Sheet1")



Dim filepath2 As String

Dim wb2 As Workbook

Dim ws2 As Worksheet



filepath2 = ThisWorkbook.Worksheets("Sheet1").Cells(6, 1)

Set wb2 = Workbooks.Open(filepath2)

Set ws2 = wb2.Worksheets("Sheet1")





lastrow = ws1.Cells(Rows.Count, "A").End(xlUp).Row

lastrow2 = ws2.Cells(Rows.Count, "D").End(xlUp).Row



ws1.Activate


ws1.Range(Cells(2, 1), Cells(lastrow, 7)).copy

ws2.Cells(lastrow2 + 1, 3).PasteSpecial xlPasteValues



ws2.Activate


Cells(lastrow2 + 1, 3).Select




End Sub

A 回答 (3件)

>ファイルの上書き保存がされないようにという意味です


マクロで保存したくなければ、Saveメソッドを実行しなければいいです。提示された「台帳へ転記」プロシジャにはSaveは無いので、他のところで保存しているのでは。
    • good
    • 0

ペーストする前にセル値をチェックして、空でなければペーストしないことにすればいいでしょう。

    • good
    • 1
この回答へのお礼

回答ありがとうございます

すいません、上書きされないようにという意味は

ファイルの上書き保存がされないようにという意味です

自分で、最後よくみて、ファイルをハンドにて、上書き保存したいという意味です

お礼日時:2024/12/22 19:15

こんにちは



>Bブックへ転記した際に、特に上書きしていないのにされています
意味がよくわかりませんけれど、
 「Bブックの値のあるセルに上書きされてしまう」
という意味でしょうか?

D列の最終行を、単純にA~G列の最終行として処理しているようですけれど、他の行の最終行の方が大きいというだけのことではないでしょうか?
例えば、D列のデータには空白の場合があって、たまたま最終行近くにそのような空白セルがあれば、他の行の最終行よりも小さい行を最終行として判断しているだけではありませんか?

追記しているってことは、同じ種類のデータであろうと推測しますけれど、ブックAとBとで最終行の求め方が異なるのもおかしな感じですね。
    • good
    • 1
この回答へのお礼

自分で、最後よくみて、ファイルをハンドにて、上書き保存したいという意味です

お礼日時:2024/12/22 19:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A