私はCSVファイルを「チケット」と呼ばれる新しいシートとしてインポートする以下のマクロを持っています。このファイルが存在すると、ランタイムエラーが発生します。すでに存在する場合は、既存のファイルを上書きする方法はありますか?既存のシートを置き換えるワークブックにCSVをロードするにはどうすればよいですか?
Sub GetCSVList()
Dim dlgOpen As FileDialog
Set dlgOpen = Application.FileDialog(msoFileDialogFilePicker)
With dlgOpen
.AllowMultiSelect = False
''Start in
.InitialFileName = "C:\test"
.Show
End With
For Each fname In dlgOpen.SelectedItems
ImportCSV fname
Next
End Sub
Sub ImportCSV(fname)
Set ws = Worksheets.Add(after:=Worksheets(Worksheets.Count))
ws.Name = "Tickets"
With ws.QueryTables.Add(_
Connection:="TEXT;" & fname, _
Destination:=Range("A1"))
.Name = "Test" & Worksheets.Count + 1
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.Refresh BackgroundQuery:=False
'.UseListObject = False
End With
End Sub
ファイルを保存していないので、上書きすることはありません。どこでエラーが発生していますか?同じ名前ですでに開いている別のファイルのためにファイルを開くときは?または、ワークシートの名前を変更しようとしているときに、すでにTicketsというワークシートがありますか? – Michael
マクロを開くと、CSV-Dataの中に「Tickets」という名前の新しいワークシートが作成されます。 CSVファイルの更新を取得すると、再びマクロを開き、「ランタイムエラー '1004:この名前は既に使用されています。別のものを選択してください」と表示されます。だから私は既存のワークシートまたはその中のデータを上書きし、新しいデータを挿入したいと思います。 – Andreas