将Excel中的范围有效复制到Word数组(VBA)

时间:2010-11-27 15:09:23

标签: performance word-vba

我正在处理关于word-VBA的一些性能问题。每次当我从一个单元格中读出一个值时,我会得到一张excel表格,这会导致很长的执行时间。 有没有更有效的方法一次读出excel表并将其粘贴到(字符串?)arrayso中,只需要1次访问excel表? 所有其他操作都应通过访问数组中的值来完成。

Greets,poeschlorn

2 个答案:

答案 0 :(得分:1)

根据您的描述,虽然我不确定您的问题中“触及”的含义,但我想工作簿会在打开时重新计算。您可以通过将此添加到Workbook VBA来禁止此行为:

Private Sub Workbook_Open()
    Application.Calculation = xlCalculationManual
End Sub 

请记住,当您的用户手动打开工作簿时,也会发生相同的情况。

HTH

答案 1 :(得分:0)

我不太确定,我明白你想要什么。但在此Microsoft Support Site上解释了将Excel范围转换为数组。应该可以从Word中做同样的事情。

简而言之:

   Sub Sheet_Fill_Array()
      Dim myarray As Variant
      myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
      Range("a1:a10").Value = Application.WorksheetFunction.Transpose(myarray)
   End Sub