VBAの質問です。最初に開いたファイルをOpenFil

Writer: admin Type: 友人関係の悩み Date: 2019-03-06 00:00
VBAの質問です。最初に開いたファイルをOpenFileNameに代入しているのですが、以下のコードを実行すると以下の行でエラーとなります。実行時エラー9インデックスが有効範囲にありません。Sheets("Sheet2").Copy After:=Workbooks(OpenFileName).Sheets(1)別の書き方でエラーを回避する方法はございますでしょうか。そのVBAのコードをご教示いただけると幸いです。お手数ですが、ご回答よろしくお願いいたします。-----------------------------------------------------------------------------------Sub test()'ファイルを選択して開くDim OpenFileName As StringDim LASTROW As LongChDir "C:\Users\Aユーザー\Desktop\データ\"OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?")Workbooks.Open OpenFileName'シート移動1 Sheets("Sheet2").Select Sheets("Sheet2").Copy After:=Workbooks("A.xlsm").Sheets(1)'データ転記Dim I As IntegerDim Rng As RangeDim C As IntegerWorkbooks("A.xlsm").Sheets("Sheet2").SelectFor I = 5 To Cells(2, Columns.Count).End(xlToLeft).ColumnSet Rng = Sheet1.Rows(2).Cells.Find(Cells(2, I))If Not Rng Is Nothing ThenC = Rng.ColumnIf Cells(7, I) < Sheet1.Cells(7, C) ThenRange(Cells(8, I), Cells(644, I)).Value = Sheet1.Range(Sheet1.Cells(8, C), Sheet1.Cells(644, C)).ValueEnd IfEnd IfNext'シート移動2 Sheets("Sheet2").Select Sheets("Sheet2").Copy After:=Workbooks(OpenFileName).Sheets(1) End Sub-----------------------------------------------------------------------------------共感した0###フルパスが代入されているOpenFileNameを指定しているからでしょうか?Dim FileName as stringFileName = Dir(OpenFileName)Sheets("Sheet2").Copy After:=Workbooks(FileName).Sheets(1)これでどうでしょう。ナイス0
###ご回答ありがとうございます。おかげ様で正常に動作いたしました。おっしゃる通りで、OpenFileNameにフルパスが代入されているのが原因でした。

 

TAG