【问题标题】:Copying Range from Excel efficiently to Word array (VBA)有效地将范围从 Excel 复制到 Word 数组 (VBA)
【发布时间】:2020-07-07 05:43:19
【问题描述】:

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

你好,波斯克伦

【问题讨论】:

    标签: vba performance ms-word


    【解决方案1】:

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

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

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

    HTH

    【讨论】:

      【解决方案2】:

      我不太确定,我明白你想要什么。但是在这个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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多