2017-12-28 7 views
0

私の前の質問が続きます。私はいくつかの進歩はしたが、もう一度立ち往生したと思う:ループ内の不一致エラーを修正しました。

私は2つのループを作成した。他は隠れたままですが、各ファイルの場所を保持します。私はそれが他のファイル(それぞれ "Training1")から値を選び、それを現在のファイルの "2017 Actuals"に持って来たいと思います。

私は部分をテストしていると私は私が私の不一致エラーを与える以下で間違ったつもりですが、任意のヒントが参考になると思う。ここ

Set wks = wkb.Sheets("Training1")

全コード:

Private Sub UpdateActuals_Click() 
Application.DisplayAlerts = False 
Application.ScreenUpdating = False 
Application.AskToUpdateLinks = False 
Dim p As Integer 
Dim i As Integer 
For i = 1 To 12 
    If Me.Controls("Month" & i).Value = True Then 
     For p = 1 To 12 
     Dim wkb As Workbook 
     Dim wks As Workbook 
     Set wkb = Workbooks.Open(Me.Controls("Location" & p)) 
     Set wks = wkb.Sheets("Training1") 
     ThisWorkbook.Sheets("2017 Actuals").Range(i + 1, 5) = wks.Range("Start:Finish") 
     Next p 
    End If 
Next i 

wkb.Close 
Application.DisplayAlerts = True 
Application.AskToUpdateLinks = True 
Application.ScreenUpdating = True 

End Sub 

答えて

1

wksWorksheetと宣言する必要があります。

ように、コードのあなたのブロックでは、これにそれを更新:

If Me.Controls("Month" & i).Value = True Then 
    For p = 1 To 12 
    Dim wkb As Workbook 
    Dim wks As Worksheet ' Not Workbook 
    Set wkb = Workbooks.Open(Me.Controls("Location" & p)) 
    Set wks = wkb.Sheets("Training1") 
    ThisWorkbook.Sheets("2017 Actuals").Range(i + 1, 5) = wks.Range("Start:Finish") 
    Next p 
End If 
+0

感謝。これは信じられないほどばかげた間違いでした。 – user8958702

+0

私たちの最高のことが起こります。時にはそれが必要なのは目の第二のセットです。 –

関連する問題