我正在写一个VBA脚本来检查所有的测量点,谁是选择的一部分有检查命令。为此,我需要提取大量的度量点(约2721),并将它们用作另一个事务中的输入。
我遇到的问题是:从SAP中提取/导出大量数据的最有效方式是什么,我可以将它们作为SAP中的输入来粘贴?
我可以进行导出,但不能通过VBA访问导出的Excel文件.我可以循环遍历数据并复制每个单元格,但是这非常慢,如下所示。
row = 1
For i = 1 To session.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell").RowCount - 2
    session.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell").CurrentCellRow = i    
    ThisWorkbook.Sheets("Output2").Cells(row, 1) = session.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell").GetCellValue(i - 1, "TPLNR")
    ThisWorkbook.Sheets("Output2").Cells(row, 2) = session.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell").GetCellValue(i - 1, "POINT")
    row = row + 1
Next发布于 2022-09-07 06:48:30
你应该
with不多次调用session.FindByID... Dim arrData As Variant, i As Long
With session.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell")
    
    ReDim arrData(1 To .RowCount - 2, 1 To 2)
    
    For i = 1 To .RowCount - 2
        .CurrentCellRow = i
        arrData(i, 1) = .GetCellValue(i - 1, "TPLNR")
        arrData(i, 2) = .GetCellValue(i - 1, "POINT")
    Next
    
End With
With ThisWorkbook.Sheets("Output2")
    .Resize(UBound(arrData, 1), 2).Value = arrData
End With但是,也许研究Powerquery来实现您想要的结果是值得的。
https://stackoverflow.com/questions/73631017
复制相似问题