0
SourceBook = ActiveWorkbook.Name

SourceSheet = Workbooks(SourceBook).Worksheets(2).Name

If Workbooks(SourceBook).Sheets(SourceSheet).Range("B10") = "SM" Then
    Workbooks(SourceBook).Worksheets(SourceSheet).Range("D11:D3000,K11:K3000,N11:AC3000,CX11:CX3000,DD11:DD3000").Select
    Selection.Copy

上記のコードを入力すると、結果が得られます。しかし、後でコードを入力すると、

ElseIf Workbooks(SourceWorkbook).Sheets(SourceSheet).Range("B1") = "Status" Then
    MsgBox ("okay....")

それが示している"Subscript out of range (Error 9)".

誰でも助けることができますか?

4

1 に答える 1

3

タイプミスがあります。あるべきでありSourceBook、そうではないSourceWorkbook

また、これは非常に複雑な方法です。代わりにこれを試してください。

Sub Sample()
    Dim wb As Workbook
    Dim ws As Worksheet

    Set wb = ActiveWorkbook '<~~ OR ThisWorkbook?
    Set ws = wb.Sheets(2)     

    If ws.Range("B10").Value = "SM" Then
        ws.Range("D11:D3000,K11:K3000,N11:AC3000,CX11:CX3000,DD11:DD3000").Copy
    ElseIf ws.Range("B1").Value = "Status" Then
        MsgBox ("okay....")
    End If
End Sub
于 2013-09-11T11:27:42.507 に答える