如果有一个共享的excel工作簿(只读/通知),此时有人在使用它,当我试图打开它时,它会问我。
(非常重要):我实际上不想在后台打开excel文件,而是从已关闭的文件中复制数据。原因是文件很大,打开几乎需要3-4分钟。
有什么办法我可以:
我正在寻找代码的通用框架。
-Thank你!
发布于 2014-03-20 19:08:14
这将适用于您,但它必须有一个最大范围(我使用了60000),尝试使用整个列将值复制到行中,远远超出了您想要的范围。这将将值放入相应的单元格中,复制结果并对其进行回复,然后删除前0之后的所有行,这将是在单元格为空的情况下公式的结果。
Sub closed_copier()
Range("A1", "A60000").Value = "='Path\to\your\workbook\[workbook_name.xlsx]SheetName'!A1:A60000"
Range("A1", "A60000").Copy
Range("A1").PasteSpecial xlPasteValues
clearEmptyRows
End Sub
Sub clearEmptyRows()
Dim lcell As Range
Dim last_data_row As Long
For Each lcell In Range("A:A")
If lcell.Value = 0 Then
last_data_row = lcell.Row
Exit For
End If
Next lcell
Range("A" & last_data_row, "A60000").EntireRow.Delete
End Sub还要知道,如果该行包含任何零,那么下面的所有内容都将被完全删除。打开工作簿会带来更好的结果,但是由于您请求不打开工作簿,所以您的选择是有限的。
https://stackoverflow.com/questions/22542003
复制相似问题