私はcsvファイルを自動的に受け取り、ブックの特定のワークシートにインポートするマクロを実行しています。しかし、名前を変更するだけでなくディレクトリも変更できるため、マクロで自動的にcsvファイルを取得させるのではなく、ユーザーがインポートするファイルを選択するようにすることで、柔軟性を高めたいと考えています。私はVBAの初心者ですが、MsoFileDialogTypeとGetOpenFilenameをよく理解しようとしていますが、コンセプトや実装を自分のコードに把握しようとするのは難しいです。ワークブック内の既存のシートにインポートするCSVファイルを選択するように求めるマクロ
私が最終的に望むのは、ユーザーがワークブックのフロントエンド上のボタンをクリックすることです。インポートする最初のcsvファイルを選択するメッセージが表示されます。このcsvファイルは、ワークブックtemp1の事前指定ワークシートにインポートされます。しかし、データファイルがペアになっているので、最初のtemp2の後に次のcsvファイルを選択できるようにします。私は現在持っている何
は次のとおりです。
Worksheets.Add
ActiveSheet.Name = "temp1"
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;MAC Directory path here" _
, Destination:=Range("A1"))
.Name = "temp 1 03.02.12"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlMacintosh
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1)
.Refresh BackgroundQuery:=False
.UseListObject = False
End With
ActiveSheet.Move after:=Worksheets(Worksheets.Count)
ありがとうございました。
こんにちはRemou、私はコードを実装しようとしたが、このエラーが発生しました:「定義されていないユーザー定義型」をして、このライン強調表示 - >薄暗いdlgOpenのFileDialog – VMO
としては、Excelのバージョンを使用しているの? Microsoft Office x.x Object Libraryへの参照を追加できますか? – Fionnuala
こんにちはRemou、私はMac Office 2011を使用しています。私は、ツール - >参照の下に行って、Visual Basic for Applications、Microsoft Excel 14.0 Object Library、Microsoft Office 14.0 Object Libraryがチェックされていることを確認しました。 – VMO