【问题标题】:How to open workbook on a certain row without using Workbook_Open?如何在不使用 Workbook_Open 的情况下打开某一行的工作簿?
【发布时间】:2019-09-28 09:14:42
【问题描述】:

我有一个工作宏,它创建一个新的工作簿,写入它,然后通过电子邮件发送给客户。

工作簿在工作簿的第一行打开,客户端需要向下滚动才能找到所需的数据。我希望 Excel 文件在文件的中间行打开。

由于安全原因,工作簿不能包含宏。因此在Workbook_Open()方法上写代码去某一行是不可行的。

【问题讨论】:

  • 您是否在发送前保存图书?我猜不是因为这似乎是一个太明显的解决方案
  • 不幸的是,我没有保存。我知道保存会在保存之前打开“选定”​​单元格上的工作簿。
  • 您找到有用的答案了吗?请发布反馈。

标签: excel vba


【解决方案1】:

如果您让您的 VBA 代码选择给定的Range 并在发送之前使其在屏幕上可见,则它应该是选定的范围,并且在直接从附件打开时可见。 按照 OP 中的规定,您不需要您的工作簿包含任何 VBA 代码。

我使用下面的代码来创建工作簿 然后我手动选择通过电子邮件发送(如果通过 VBA 完成,应该无关紧要),将其发送给自己,然后从附件中打开它。

Sub create_wb_select_range()
    Dim wb As Workbook
    Set wb = Workbooks.Add
    Dim ws As Worksheet
    Set ws = wb.Sheets.Add(After:=wb.Sheets(wb.Sheets.Count))
    Dim wsname As String
    wsname = "MySheet"
    ws.Name = wsname
    Dim rngname As String
    rngname = "J68"
    ws.Range(rngname).Select
End Sub

【讨论】:

  • 没有 SELECT 我想理论上还有另一个选项:1)解压缩 xlsx 文件,2)修改最后修改工作表的 xml 文件:行“ "(我最后修改的单元格是在我的示例解压excel文件中的K34),这些操作有一些解决方案,但似乎过于复杂,选择更好
  • 我明天试试这个并提供更新,谢谢!
  • @RafałB。 - 正如你所说,它可能会起作用,但它似乎有点矫枉过正。
  • @Aiyuni - 你有机会测试提议的解决方案吗?
猜你喜欢
  • 1970-01-01
  • 2013-04-24
  • 2018-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
  • 2013-10-15
相关资源
最近更新 更多