2017-07-03 13 views
0

使用するブックを選択する際にExcelを取得しようとすると、下付き文字が範囲外です。私はそれがどのフォルダから由来するかを参照しなければならないかどうかわかりません。それらはすべて同じフォルダにあります。私は他の人々の解決策を見ていましたが、私は同じフォーマットやタスクを持っていません。エラーそれはワークブック番号を割り当てるラインブックを選択するときに下付き文字

Sub bringbookstogether() 

Dim currentsheet As Worksheet 
Set currentsheet = Application.ActiveSheet 

Dim othersheets As Worksheet 

Dim wbook As Workbook 

Dim c As String 

'assigns the number to start with 

Dim a, b, d As Integer 

a = 4 
b = 6 
d = 1 

'assigns workbook numbers 
If (d = 1) Then 
    Set wbook = Workbooks("MaintPrep Sheet 1st") 
    Else 
    If (d = 2) Then 
     Set wbook = Workbooks("MaintPrep Sheet 2nd") 
     Else 
     If (d = 3) Then 
      Set wbook = Workbooks("MaintPrep Sheet 3rd") 
     End If 
    End If 
End If 

'End if it's done with all the workbooks 

Do Until (d = 4) 

'Looks for the sheet that has the same name 

Do While (c = currentsheet.Name) 

'Ends in row 99 

Do While (b < 99) 

'Ends in Column 52 

Do While (a < 52) 

currentsheet.Cells(b, a) = currentsheet.Cells(b, a) + Workbooks(d).Sheets(c).Cells(b, a) 

a = a + 1 
Loop 

b = b + 1 
Loop 

Loop 

d = d + 1 
Loop 

End Sub 

答えて

0

まず第一にあり、それは完全なファイル名を使用することをお勧めします:すべての Workbooks("MaintPrep Sheet 1st.xlsx")など

第二に、このコードは、すぐ一つとしてエラーになりますアクセスしようとしているブックの現在開いていません。ワークブックが開いていない場合、それは現在のコンテキスト内に存在しないため、Excelがエラーをスローします91

これを修正するには、行うことができます:

Sub a() 
Dim wb As Workbook 

On Error Resume Next 'To avoid error 91 
Set wb = Workbooks("MaintPrep Sheet 1st.xlsx") 
On Error GoTo 0 'To avoid not seeing other errors. 

If Not wb Is Nothing Then 
    'Do stuff 
    MsgBox "Opened!" 
Else 
    'Handle the fact that it's missing 
    MsgBox "Not open!" 
End If 

'Alternatively, OPEN the workbook if you couldn't set it in the first place: 
On Error Resume Next 
Set wb = Workbooks("MaintPrep Sheet 1st.xlsx") 
On Error GoTo 0 

If wb Is Nothing Then 
    Set wb = Workbooks.Open("C:\FullPath\MaintPrep Sheet 1st.xlsx") 
    'Do stuff 
End If 

End Sub 
+0

が、私はそれぞれのいずれかを実行する必要がありますかワークブック? – MaxAttack102

+0

あなたのユースケースによって異なります。 'wbook'変数を設定するときに、Workbookがデフォルトで閉じられ、' Workbooks.Open( "path¥filename.xlsx") 'を使うと仮定することもできます。 –

+0

エラーはありません。ありがとうございます。 – MaxAttack102

関連する問題