gpt4 book ai didi

vba - Workbooks.Open 显示两种不同格式

转载 作者:行者123 更新时间:2023-12-02 15:02:27 28 4
gpt4 key购买 nike

我在尝试使用 VBA 读取两个 .CSV 文件的内容时遇到问题。这两个文件的结构如下:

<Column 1>    <Column 2>    <Column 3>
<Data 1.1> <Data 2.1> <Data 3.1>
<Data 1.2> <Data 2.2> <Data 3.2>
<Data 1.3> <Data 2.3> <Data 3.3>

当我使用 Workbooks.Open(Filename:=FILEPATH, ReadOnly:=True) 但我在文件中没有获得相同的格式。

这是我在第一个文件中读到的内容:所有内容都在第 1 列中,并用分号分隔。

<           Column 1           >
<Data 1.1>;<Data 2.1>;<Data 3.1>
<Data 1.2>;<Data 2.2>;<Data 3.2>
<Data 1.3>;<Data 2.3>;<Data 3.3>

这是我在第二个文件中读到的内容:一切都保持正常。

<Column 1>    <Column 2>    <Column 3>
<Data 1.1> <Data 2.1> <Data 3.1>
<Data 1.2> <Data 2.2> <Data 3.2>
<Data 1.3> <Data 2.3> <Data 3.3>

我很想打开这两个文件并以相同的方式读取数据。我究竟做错了什么 ?是我的代码中的问题还是来自 .CSV 文件之一的问题?

代码片段

Public Sub openCSVFiles()

Dim openWb1 As Workbook
Dim openWb2 As Workbook

Set openWb1 = Workbooks.Open(Filename:=FILEPATH_1, ReadOnly:=True, Delimiter:=";")
Set openWb2 = Workbooks.Open(Filename:=FILEPATH_2, ReadOnly:=True, Delimiter:=";")

'Cell A2 contains <Data 1.1>
For Each dataRow In openWb1.Sheets(1).Range("A1:C3")
Debug.Print dataRow
Next dataRow

'Cell A2 contains <Data 1.1>;<Data 2.1>;<Data 3.1>
For Each dataRow In openWb2.Sheets(1).Range("A1:C3")
Debug.Print dataRow
Next dataRow

openWb1.Close False
openWb2.Close False
End Sub

最佳答案

通常,当您遇到此类问题时,第一步是使用记事本快速浏览一下文件。一旦您知道分隔符是什么,请根据您的需要使用以下选项之一

  1. 使用带有分隔符的 Split() 函数
  2. 仅需要打印/显示时使用 Replace() 函数
  3. 打开时定义分隔符 - https://msdn.microsoft.com/en-us/vba/excel-vba/articles/workbooks-open-method-excel
  4. 通过 VBA 使用“文本到列”- https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-texttocolumns-method-excel

关于vba - Workbooks.Open 显示两种不同格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49195270/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com