2017-05-24 5 views
0

EDIT返します助けをたくさんした後ないで何が起こっているかの手がかりを有する、それは開口部(see @JohnMuggin's help below)の異なる方法を使用して働いていた - 私は私のオリジナルの未コメントコードと突然それが動作します。VBA Workbook.Open(ファイル)が何も

Workbook.Open("file")が返された他のインスタンスが1つしか見つかりませんでした。(Link to Q)。しかし、私の理解では、ユーザ定義の関数でWorkbook.Open("file")を呼び出すことが問題でした。ここではSubに電話していますが、同じ問題を抱えていて解を見つけることができません。私は最後の行にSet wb = Workbooks.Open(myFile)セットNothingとしてwbをエクセル2013

Private Sub CommandButton2_Click() 

'Set variables 
Dim wb As Workbook 'Workbook to open 
Dim wbR As Worksheet 'This is the raw data on the new workbook 
Dim wsL As Worksheet 'Worksheet in current file 
Dim myFile As String 'File to open 
Dim FilePicker As FileDialog 

'Set light chain hit worksheet 
Set wsL = ThisWorkbook.Worksheets(3) 

'Optimizes Speed 
Application.EnableEvents = False 
Application.Calculation = xlCalculationManual 

'Retrieve Target Folder Path From User 
Set FilePicker = Application.FileDialog(msoFileDialogFilePicker) 

'Opens folder-picking window 
With FilePicker 
    .Title = "Select a file." 
    .AllowMultiSelect = False 
    If .Show = True Then 
     myFile = .SelectedItems(1) 
    Else: GoTo NextCode 
    End If 
End With 

'If folder is not selected 
NextCode: 
    myFile = myFile 
    If myFile = "" Then GoTo ResetSettings 

'Set variable equal to opened workbook 
Set wb = Workbooks.Open(myFile) 

マクロは継続を使用しますが、しています。 wbをコードのさらに遠くに呼び出すまで、これはエラーを生成しません。

さらに先の行Set wsL = ThisWorkbook.Worksheets(3)wsLNothingと設定します。

デバッガを使用して各行と値を確認し、適切なパス、ファイル名、および拡張子がmyFileであると判断しました。

+0

ブックは開いていますか? –

+0

@TimWilliamsいいえ、そうではありません。 – MTJ

+0

'CommandButton2_Click'は何と呼びますか?それはユーザーフォーム上の単なるボタンですか? (私は尋ねる必要があります - 私は人々がUDFからこのようなコードを呼び出すのを見てきました) – YowE3K

答えて

1

最後にこの小さなサブを試してください。ブックが開かない場合、パスまたはファイル名に問題があります。

Sub opendfghj() 

Dim wb As Workbook 

Workbooks.Open Filename:="C:\Users\User\Desktop\Templates and Example data\Repeat Tests\file.xlsx" 

Set wb = ActiveWorkbook 

wb.Worksheets("Sheet1").Range("A1") = "It Works" 
End Sub 
+0

あなたのファイルの名前は "file.xlsx" –

+1

ですか? 'Workbooks.Open Filename:=" string "と' Set wb = ActiveWorkbook'で追加していました。そこで、私は 'string'を置き換え、' Workbooks.Open Filename:= myFile'をテストしました。困ったことに、これらの行を削除し、元の 'Set wb = Workbooks.Open(myFile)'をテストしたところ、突然動作しました。私は何が与えるのか分からないが、これらのラインは今では完璧に機能する。 – MTJ

+0

満月までそれをチョークします... –

関連する問題