2017-08-31 10 views
0

でLASTROWを取得しようとすると、実行時エラー9、ここに新しくオープンしたファイル

Dim OpenFileName As String 
Dim wb As Workbook, wb2 As Workbook 
Dim lastrow 
'Select and Open workbook 
OpenFileName = Application.GetOpenFilename(",*.csv") 
If OpenFileName = "False" Then Exit Sub 
Set wb = Workbooks(OpenFileName) 
Set wb2 = Workbooks("MasterLogFile.xlsm") 

MsgBox OpenFileName 
With wb 
'lastrow = .UsedRange.Rows(.UsedRange.Rows.Count).Row 
lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row 
Range("A3:ME" & lastrow).Copy 
.Sheets("Log Imports").Range("A7").Paste 
End With 

を失敗している私のコードであることが設定されたWB行に失敗し、私が間違って何をやっていますか?

+0

GetOpenFileNameの方法は、([開く]ダイアログを表示しますが、ファイルを開けません。選択されたファイル名を返します)。 Vityataが答えたように、あなたはその後それを開いて(そして閉じて)いなければなりません。まだ開いていないブックへの参照を取得しようとしているため、エラーが発生しました。 –

答えて

1

変更して、これとコード:

Set wb = Workbooks.Open(OpenFileName) 

次に、このように最後にそれを閉じる:

https://msdn.microsoft.com/en-us/vba/excel-vba/articles/workbook-close-method-excel

+0

この行に実行時エラー438があります。 lastrow = .Cells(Rows.Count、 "A")。終了(xlUp).Row – DanM

+0

'WorkSheets(1).Range(" A3:ME "& lastrow).Copy'だけではなく、 'Range ...'またはここを参照してください - https://stackoverflow.com/questions/12288588/excel-vba-error-438-object-doesnt-support-this-property-or-メソッド – Vityata

+0

私のエラーは、ラストローの行です、ローカルウィンドウは、式lastrowが空であると言います。私は間違って何をしていますか? – DanM

関連する問題