有没有办法在excel表单中设置开始查看位置?

通常情况下,Excel会记住你在一张纸上停下的位置,当你下次打开它时,它就会立即显示。 生成文档时有没有办法设置这样的位置?

使用pywin32软件包,您可以使用COM控制Excel,并自动执行Excel可以执行的任何操作。

下面是一个例子,它创build一个简单的工作表,初始化一些单元格,select一个单元格,然后保存文档。 当您稍后打开文档时,它将恢复到同一位置。

import win32com.client def create_excel_file(): xl = win32com.client.gencache.EnsureDispatch('Excel.Application') # xl.Visible = True # Uncomment to make the Excel COM instance visible wb = xl.Workbooks.Add() ws = xl.ActiveSheet ws.Range('A1').Value = 100 ws.Range('A2').Value = 200 ws.Range('B1').Value = 300 ws.Range('B2').Value = 400 ws.Range('B2').Select() ws.SaveAs(r'test.xlsx') xl.Quit() create_excel_file() 

这是在Excel中打开的结果文件:

test.xlsx内容

假设我们希望Sheet2是活动表单元格,并且Z100单元格位于窗口的左上angular。 将此事件macros放在工作簿代码区域中:

 Private Sub Workbook_Open() Sheets("Sheet2").Activate Range("Z100").Select Application.Goto Reference:=ActiveCell.Address(ReferenceStyle:=xlR1C1), Scroll:=True End Sub 

因为它是工作簿代码,所以安装和使用起来非常简单:

  1. 右键单击菜单栏上文件左侧的小型Excel图标
  2. select查看代码 – 这会popup一个VBE窗口
  3. 粘贴东西,closuresVBE窗口

如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除macros:

  1. 调出上面的VBE窗口
  2. 清除代码
  3. closuresVBE窗口

要了解有关macros的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解有关事件macros(工作簿代码)的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/event.htm

macros必须启用这个工作!