3

CSVファイルからデータをインポートするためにExcel2007/2010でVBAコードを作成しました。残念ながら、プログラムでファイルを開くと、データは特定の行のデータに対して2つの列(AとB)に分割されます。

CSVファイルを手動で開くと、すべてが正常に表示されます。

通常、CSVデータは次のようになります(ヘッダー行の例)。

TBWAKT; "TBWAKO"; "TBSAIS"; "TBSKU9"; "TBSMOD"; "TBLETT"; "TBKBNR"; "TBBEZ2"; "TBFAR2"; "TBSUGC
"; "TBSOGC"; "TBEINK"; "TBKBGR"; "TBKBGF"; "TBVKPE"; "TBVKPR"; "TBEKPE"; "TBAUAN
"; "TBFAAN"; "TBREAN"; "TBSTAN"; "TBRUAN"; "TBKPAG"; "TBERDT"; "TBDATV"; "TBDATB 「」

問題の原因となるデータには、テキストにコンマが含まれています。次に例を示します。

JEAN 5 POCHES EXTENSIBLE + 1,60M

コードは次のとおりです。

Private Sub OpenCSV(x As Integer, wkbDashboard As String, wkbCsvImport As String, wksDestination As Worksheet)
' Opens CSV and copies data to current workbook
Dim wkbCsvImportName As String
Dim r As Range

Workbooks(wkbDashboard).Activate

' Open and read CSV
Workbooks.Open Filename:=wkbCsvImport, Format:=xlDelimited, Delimiter:=";"
wkbCsvImportName = ActiveWorkbook.Name

問題のスクリーンショット。ファイルを開いた後、赤いものは列Bにあります。
ここに画像の説明を入力してください

4

5 に答える 5

4

これが役立つかもしれないことを願っLocal:=Trueて引数として追加してください!Workbooks.Open

于 2015-06-24T13:07:39.647 に答える
1

カンマではない区切り文字を使用してデータをインポートするには、ここで説明するように、Formatを定義できるように属性を6に設定する必要があります。直接4に設定した場合にも機能するはずですdelimiterFormat

于 2012-12-06T15:22:17.283 に答える
1

手動で行うと、Excelは区切り文字を「;」として読み取っていると思います。だけでなく;。

これを試して:

Workbooks.Open Filename:=wkbCsvImport, Format:=xlDelimited, Delimiter:=""";"""

編集:

これを機能させる唯一の方法は、ファイル拡張子をcsvからtxtに変更してから、次のコードを実行することです。

Workbooks.OpenText Filename:=wkbCsvImport, _
                    DataType:=xlDelimited, semicolon:=True
于 2012-12-06T15:22:26.507 に答える
1

拡張子がCSVだからだと思います。ファイルの名前を.txtに変更するとどうなりますか?

于 2012-12-06T15:58:03.690 に答える
1

私は2つの可能な回避策を知っています:

.csv1)たとえば、拡張子をからに変更し、次の.xxxように開きます。

Workbooks.OpenText fileName:="file.xxx", _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=1, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, _
Comma:=False, Space:=False, Other:=False, OtherChar:="", _
TrailingMinusNumbers:=True, Local:=True

.csvまたはを使用する.xlsと、ExcelはOSからのデフォルト値で設定を上書きします。

2)Windows 10では、ロケール設定をからEnglish - United Statesに変更しますEnglish - United Kingdom。それが役立つのは不思議です。高度な日付/時刻の区切り文字の設定は関係ありません。Windows 7では、区切り文字の設定が機能したと思います。

于 2019-11-12T15:15:29.067 に答える