如果有人正在使用的共享excel工作簿(只读/通知),当我尝试打开它时,它会问我。
(非常重要):我实际上不想在后台打开excel文件,而是复制已关闭文件中的数据。原因是文件很大,打开需要3-4分钟。
我有办法吗?
我正在寻找代码的通用框架。
- 谢谢你!
答案 0 :(得分:1)
这对你有用,但它必须有一个最大范围(我使用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
另请注意,如果此行包含任何零,则下面的所有内容都将被完全删除。打开工作簿会产生更好的结果,但由于您要求不会发生这种情况,因此您的选择是有限的。