Excel VBA:将字符串数组复制到Range - String包含双引号

时间:2016-09-03 02:41:57

标签: excel vba

arr是一个字符串数组

使用此代码将数组复制到列中可以正常工作,直到达到包含双引号(“)字符的字符串,从而导致错误。

arr中的字符串正在从文本文件中读入并包含双引号。

Application.Worksheets("Sheet1").Columns(1) = arr

解决这个问题的最佳方法是什么?

编辑:

Open filePath For Input As 1
Line Input #1, NewTextLine
arr(index, 1) = textLine

导致问题的arr()项示例:

  

“2016-08-30 11:12:07.9120759§3§§0§§§§§§§§§CompossiteIodBuilder.Build() - 数字X射线图像存储的Dicom标签列表 - 用于演示:    Patient_s_Name Tag =“(0010,0010)”VR =“PN”VM =“1”Value =“xx xxxx ^ xxxx ^ xxx”    Patient_ID Tag =“(0010,0020)”VR =“

我刚刚注意到在复制到这篇文章时该字符串包含CR和LF字符。我可能错误地认为引用问题而不是CR和LF。

2 个答案:

答案 0 :(得分:0)

问题是Excel 2003遇到字符串超过911个字符的问题。

  

如果数组中的一个或多个单元格(范围为   cells)包含一个设置为包含911以上的字符串   字符。

答案 1 :(得分:-1)

如果没有看到您的数据,很难回答这个问题,但理论上,如果该值可以写入window.onload = function() { document.body.innerHTML = '<div class="screen screen-start" id="start"><header><h1>Tic Tac Toe</h1><a href="#" class="button">Start game</a></header></div>'; document.querySelector('a').addEventListener("click", loadBoard); }; 变量,那么它也应该可以写入工作表。

如果你举这个例子,没有困难:

String

但是,将数组写入列的代码看起来有点可疑。理想情况下,您可以根据数组的尺寸调整写入范围。在我的示例中,以下代码编写了Dim arr(1 To 2, 1 To 1) As String arr(1, 1) = """a""" arr(2, 1) = Chr(34) & Chr(34) & "b" & Chr(34) & Chr(34) Sheet1.Cells(1, 1).Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr 的列表。

#NA

我想知道你是否可以a)修改代码以将数组写入适当大小的范围b)如果问题仍然存在,提供麻烦字符串的示例。