###質問内容
VBAでCSVを読み込み、Excelシートにデータを出力→ピボットテーブルを作成
という機能を実装しようとしています。
下記コードを実行しようとしたところ、プロシージャCSV_inputのSheets.Addの箇所で型が一致しないエラーが出てしまいます。
原因がわからないので、わかる方原因と対策を教えていただけますと助かります。
###2020/5/15/14:00追記
VBA実行ファイルの構成はシート(Sheet1のみ)、マクロはSheet1モジュールに記述しております。
VBA実行しているファイルはGoogleドライブ配下のディレクトリにあります。
読み込み用CSVファイルは同じディレクトリにあります。
VBA
1Sub auction_anaytics_graph() 2 3 CSV_input 4 5 Dim OS As Worksheets 6 Set OS = ThisWorkbook.Sheets(Sheets.Count) 7 8 Dim LastRow As Long 9 LastRow = OS.Cells(Rows.Count, 1).End(xlUp).Row 10 11 Sor_auc OS, LastRow 12 Change_under10per OS, LastRow 13 Pivot_Auc_IMP OS, LastRow 14 15End Sub 16 17Sub CSV_input() 18 19 Dim varFileName As Variant 20 varFileName = Application.GetOpenFilename(FileFilter:="CSVファイル(*.csv),*.csv", _ 21 Title:="CSVファイルの選択") 22 If varFileName = False Then 23 Exit Sub 24 End If 25 26 Sheets.Add After:=Sheets(Sheets.Count) 'エラー発生箇所 27 Dim Auc_sheet As Worksheet 28 Set Auc_sheet = Sheets(Sheets.Count) 29 30 With Auc_sheet.QueryTables.Add(Connection:="TEXT;" & varFileName, Destination:=Auc_sheet.Range("A1")) 31 .TextFilePlatform = 932 'Shift=Jis 32 .TextFileCommaDelimiter = True 33 .Refresh BackgroundQuery:=False 34 .Delete 35 End With 36End Sub 37 38Sub Sor_auc(S As Worksheets, LRow As Long) 39 40 With S.Sort 41 .SortFields.Clear 42 .SortFields.Add Key:=Range("A3"), Order:=xlAscending 43 .SetRange Range(Cells(3, 1), Cells(LRow, 1)) 44 .Header = xlYes 45 46 .Apply 47 End With 48 49End Sub 50 51Sub Change_under10per(S As Worksheets, LRow As Long) 52 53 Dim i As Long 54 55 For i = 4 To LRow 56 57 S.Cells(i, 3) = Replace(S.Cells(i, 3), " ", "") 58 S.Cells(i, 3) = Replace(S.Cells(1, 3), " ", "") 59 S.Cells(i, 3) = Replace(S.Cells(1, 3), "未満", "") 60 Next i 61 62End Sub 63 64Option Explicit 65 66Sub Pivot_Auc_IMP(S As Worksheets, LRow As Long) 67' 68' Pivot_IMP Macro 69' 70 71 Dim PivotS As Worksheet 'ピボットテーブルを作成するシート 72 Dim PCache As PivotCache 'ピボットキャッシュ用変数 73 Dim P_name As String 74 75 76 77 PCache = ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=S.Range(Cells(3, 1), Cells(LRow, 3)), _ 78 Version:=xlPivotTableVersion15) 79 80 P_name = "月別インプレッションシェア" & OS.Name 81 PCache.CreatePivotTable TableDestination:=S.Range("E3"), TableName:=P_name 82 83 OS.PivotTables(P_name).AddFields ColumnFields:=Array("月") 84 OS.PivotTables(P_name).AddFields RowFields:=Array("表示 URL ドメイン") 85 OS.PivotTables(P_name).AddDataField Fields:=OS.PivotTables(P_name).PivotFields("インプレッション シェア"), _ 86 Function:=xlSum 87 88 89 With OS.PivotTables(P_name) 90 .ColumnGrand = False 91 .RowGrand = False 92 End With 93 94End Sub 95 96 97
回答1件
あなたの回答
tips
プレビュー