0

情報が 1 つのワークブック (ThisWorkbook) からコピーされ、別のワークブック (All data.xlsm) の空の行に貼り付けられるようにする方法を開発したいと考えています。2 つのシートが同じワークブックにある場合はコードを開発できましたが、別のワークブックを参照する必要があるため、動作しません (エラー 9)。問題は、両方のワークブックがチーム サイトにあるにもかかわらず、両方のファイルが開かれていることです。私のコードの下を見つけてください(私の最善の試みで)。

Dim actionlogRow
Dim actionlogRowSet As Boolean
Dim RecordSave As String
Dim recordActionLog As String

actionlogRow = 1
actionlogRowSet = False

Application.ScreenUpdating = False

RecordSave = Range("new_actions").Cells(1, 1).Value

Workbooks("All data.xlsm").Activate

Do

    recordActionLog = Worksheets("Action Log").Range("C8:AE8").Offset(actionlogRow, 0).Cells(1, 1)

    If recordActionLog = "" Then
        'Location to copy to is current row
        actionlogRowSet = True
    Else
        'Look at next row
        actionlogRow = actionlogRow + 1
    End If

Loop Until actionlogRowSet = True

'Copy the record into the database
Call ThisWorkbook.Sheets("New actions").Range("new_actions_endorsed").Copy
Call Workbooks("All data.xlsm").Worksheets("Action Log").Range("C8:AE8").Offset(actionlogRow, 0).PasteSpecial(xlPasteValuesAndNumberFormats)

Application.ScreenUpdating = True
4

1 に答える 1

0

両方のスプレッドシートを同じ Excel インスタンスで開いておく必要があります。最初に Excel を開いて、そこから両方のスプレッドシートを開けば (Ctrl O)、問題ないはずです。ただし、2 つの Excel プログラム ファイルを開くと、互いを認識できず、「実行時エラー 9: 下付き文字が範囲外です」というメッセージが表示されます。

于 2013-10-29T12:11:22.567 に答える