首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从其他用户正在使用的共享工作簿复制信息(不打开)

如何从其他用户正在使用的共享工作簿复制信息(不打开)
EN

Stack Overflow用户
提问于 2014-03-20 18:28:28
回答 1查看 393关注 0票数 0

如果有一个共享的excel工作簿(只读/通知),此时有人在使用它,当我试图打开它时,它会问我。

  • 我想以只读的方式打开它

(非常重要):我实际上不想在后台打开excel文件,而是从已关闭的文件中复制数据。原因是文件很大,打开几乎需要3-4分钟。

有什么办法我可以:

  1. 打开另一个用户正在使用的工作簿;
  2. 例如,将A列复制到新的电子表格中(我只是尝试将信息从工作簿复制到更新的电子表格中);并在以下时间全部执行:
  3. 在没有实际打开文件的情况下,我在后台引用,因为文件太大了。

我正在寻找代码的通用框架。

-Thank你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-20 19:08:14

这将适用于您,但它必须有一个最大范围(我使用了60000),尝试使用整个列将值复制到行中,远远超出了您想要的范围。这将将值放入相应的单元格中,复制结果并对其进行回复,然后删除前0之后的所有行,这将是在单元格为空的情况下公式的结果。

代码语言:javascript
复制
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

还要知道,如果该行包含任何零,那么下面的所有内容都将被完全删除。打开工作簿会带来更好的结果,但是由于您请求不打开工作簿,所以您的选择是有限的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22542003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档