VBA按新行字拆分数据

VBA按新行字拆分数据,vba,split,ms-word,Vba,Split,Ms Word,我正在尝试在word中使用VBA拆分数据 我用下面的方法得到了数据 d = ActiveDocument.Tables(1).Cell(1, 1).Range.Text 这样可以工作并获得正确的数据。此示例的数据如下所示 This is a test 但是,当我需要使用分隔符将字符串拆分为字符串列表时\n 下面是所需输出的示例 This,is,a,test 我目前正在使用 Dim dataTesting() As String dataTesting() = Split(d, vbLf

我正在尝试在word中使用VBA拆分数据

我用下面的方法得到了数据

d = ActiveDocument.Tables(1).Cell(1, 1).Range.Text
这样可以工作并获得正确的数据。此示例的数据如下所示

This
is
a
test

但是,当我需要使用分隔符将字符串拆分为字符串列表时\n

下面是所需输出的示例

This,is,a,test

我目前正在使用

Dim dataTesting() As String
dataTesting() = Split(d, vbLf)
Debug.Print dataTesting(0)
但是,这将返回所有数据,而不仅仅是第一行

下面是我在Split函数中尝试的内容

  • \n
  • \n\r\n
  • \r
  • vbNewLine
  • vbLf
  • vbCr
  • vbCrLf
您可以试试这个(来自的正则表达式拆分器)

如果这不起作用,Word文档中可能有奇怪的unicode/Wprd字符。例如,它可能是软中断。您可以尝试不使用“\W+”而不是“\s+”进行拆分。没有您的文档,我无法对此进行测试。

Word使用vbCr(ANSI 13)编写“新”段落(按ENTER键时创建)-如果激活了非打印字符的显示,则在Word UI中用¨表示

在本例中,显示的表格单元格内容如下所示

This¶
is¶
a¶
test¶
拆分由Word中的pilcro分隔的数组的正确方法是:

Dim d as String
d = ActiveDocument.Tables(1).Cell(1, 1).Range.Text
Dim dataTesting() As String
dataTesting() = Split(d, vbCr)
Debug.Print dataTesting(0)  'result is "This"

它很可能是手动换行符
vbVerticalTab
-
拆分(d,Chr(11))
它也可能是
Chr(10)
它是vbCR(ANSI 13),一个“段落标记”
Dim d as String
d = ActiveDocument.Tables(1).Cell(1, 1).Range.Text
Dim dataTesting() As String
dataTesting() = Split(d, vbCr)
Debug.Print dataTesting(0)  'result is "This"