私は、各列に1つの調査が含まれる調査データを含むワークシートを持っています。現在検討中の調査の特定のセルをコピーして、後で電子メールに追加する形式に貼り付けることにしました。以下のコードは、レビュー中の調査の現在の列番号を計算してから、その列の特定のセルをコピーしようとしていますが、データはその形式に貼り付けられません。vba - 行/列アドレス経由の間接コピー?
次のコードは:
Sub test
Dim dataSheet, dataStart, dataSurvey As Range
dataSheet = "MED-FB-YTD" ' name of the sheet where data is stored
Set dataSurvey = ThisWorkbook.Sheets("HeartBeat_Alert").Range("K5") ' survey number of specific record eg. 5
Set dataStart = ThisWorkbook.Sheets("HeartBeat_Alert").Range("K4") ' column number of first survey of specified time period eg. 307
dataCol = dataSurvey + dataStart - 1 ' actual data column is (dataStart + dataSurvey) - 1 eg. = 5+307-1 = column 311
With ThisWorkbook.Sheets("HeartBeat_Alert")
.Select
Sheets(dataSheet).Cells(25, dataCol) = ActiveSheet.Range("B3").Value ' copy room no
Sheets(dataSheet).Cells(16, dataCol) = ActiveSheet.Range("B4").Value ' copy arrival date
Sheets(dataSheet).Cells(17, dataCol) = ActiveSheet.Range("B5").Value ' copy departure date
end with
end sub
それは私が働いていない/サポートされ、したがって、いくつかの助けをいただければ幸い上のデータをコピーしようとしている方法のように私には思えます。
おかげで、すべての A2K
_With_ステートメントの使用を避けてください。ほとんどの場合、コードには不可解な機能が追加されます。あなたの例では、With ThisWorkbook.Sheets( "HeartBeat_Alert") '...' .Select' ... 'end with'は実際にはこのコマンド' ThisWorkbook.Sheets( "HeartBeat_Alert")。Select'です。代わりにそれを使用してください。また、@MichałTurczynの言われているように、 'Select'関数を使用しないでください。 – jsotola