名前付きワークシートが複数あるマクロ対応Excelブックがあります。ワークシートの1つは「パネル」と呼ばれ、2番目のワークシートは「データ」と名付けられます。 「パネル」という名前のシートには、マクロが割り当てられたボタンがあります。 "panel"という名前のワークシート上のボタンを選択し、ファイルウィンドウのブラウズを表示したいと思います。ユーザーがハードドライブ上のcsvファイルを選択すると、csvファイルの内容をセルA1から始まる "data"という名前のワークシートにインポートします。マクロを使用してcsvファイルをExcelワークシートにインポートする
問題1:私がボタンに割り当てたvbaは、csvファイルの内容をボタン(「パネル」ワークシート)と同じワークシートに配置します。私はcsvファイルの内容を "データ"シートに載せたいと思います。
問題2:また、ハードドライブと「capture.csv」というファイルを参照するコード列があります。したがって、マクロ対応のExcelファイルが別のコンピュータにある場合、ファイルがクラッシュします。任意のコンピュータがファイルを使用できるように、パスウェイ文字列を削除する方法はありますか?
この問題を解決するための支援をいただければ幸いです。ボタンに割り当てられたマクロは次のとおりです。
Sub load_csv()
Dim fStr As String
With Application.FileDialog(msoFileDialogFilePicker)
.Show
If .SelectedItems.Count = 0 Then
MsgBox "Cancel Selected"
End
End If
'fStr is the file path and name of the file you selected.
fStr = .SelectedItems(1)
End With
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\laptop\Desktop\CAPTURE.csv", Destination:=Range("$A$1"))
.Name = "CAPTURE"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
MsgBox fStr
End With
End Sub
。これは動作するはずです – Rick
私を助けるために時間を割いていただきありがとうございます。私はあなたが書いたコードをボタンに割り当てました。 csvファイルを読み込むと、メッセージウィンドウが表示されます。 "実行時エラー '-2147024809(80070057)宛先範囲は、クエリテーブルが作成されている同じワークシートにありません。 – George
'Destination:= Range(" $ A $ 1 "))'を 'Destination:= ThisWorkbook.Sheets(" Data ")に変更してください。 –