将VBA 2-Dim String数组粘贴到Word表中

时间:2010-11-28 14:40:53

标签: vba performance word-vba

我有一个表格的抽象,在Word VBA中有一个二维字符串数组。

现在我想将这个数组保存到word文档中的表中,而不需要遍历两个维度... afaik有一种方法可以从excel中获取Range(...)内容作为数组...

e.g:

Dim rng As Excel.Range
Set rng = excelTabelle.Range("A4:F" + CStr(lastRow))
arrData = rng.Value

是否有类似的解决方案将其粘贴到Word表格中?

迭代需要太多的时间来执行,所以我正在寻找一种更有效的方法来做到这一点。

Greets,poeschlorn

1 个答案:

答案 0 :(得分:0)

一种解决方案可能是根据您的需要使用剪贴板。它不像在Excel中那么容易,但也许对你来说足够快。下面是一些示例代码,如何通过剪贴板将一些文本转换为2x3字表(将Microsoft Forms 2.0对象库的引用添加到您的VBA文档):

Dim oData As New DataObject
Dim sText As String

' Navigate to the top-left cell of your table (just an example)
Selection.HomeKey Unit:=wdStory

' Put text to the clipboard
sText = "X1" & vbTab & "B1" & vbTab & "C1" & vbCrLf
sText = sText & "A2" & vbTab & "B2" & vbTab & "C2" & vbCrLf

On Error Resume Next
oData.SetText sText
oData.PutInClipboard
On Error GoTo 0

' Select the needed rows and columns of the table'
Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend
Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend

' Paste the clipboard to the table '
Selection.Paste

我建议您调整它以将任意二维数组放入字符串并以类似方式粘贴它。如果您需要更多帮助,请回来告诉我们更多细节。