2016-09-02 17 views
-2

我需要帮助修改多张文档中的一张,所有文档之间的纸张名称相同,从可见到成为“非常隐藏”。我知道如何在VBA中一次只为一个文档执行此操作,但我不知道如何执行此操作。将多个Excel文档中的“可见”更改为“非常隐藏”

我需要这样做超过100次,这将是巨大的,如果有人知道如何可以使用VBA或Python(可能使用“openpyxl”在Python 2?)

谢谢

+0

究竟是什么“非常隐藏”?它与正常的“隐藏”不同吗? – SiHa

+0

@SiHa工作表对象具有'.Visible'状态,它可以是三个常量:'xlSheetVisible','xlSheetHidden'和'xlSheetVeryHidden'。 “隐藏”工作表在隐藏/取消隐藏工作表UI中不可见,只能以编程方式隐藏。 –

+0

@DavidZemens有用的信息,谢谢! – SiHa

回答

1

编写本假设您有一个列表(files),表示100个以上文件中的每个文件的文件路径。

from win32com import Client 
files = ["path/to/file1.xlsx", "path/to/file2.xlsx"] 
xl = client.Dispatch("Excel.Application") 

map(hide, files) 

xl.Quit() 

def hide(file): 
    SHEET_NAME = "Sheet1" # The name of the sheet you want to hide 
    wb = xl.Workbooks.Open(file) 
    wb.Worksheets(SHEET_NAME).Visible = 2 # xlSheetVeryHidden 
    wb.Save() 
    wb.Close() 

注意:如果你不想写明确直接在你的.py文件的列表中,你需要确定他们在以一个列表对象阅读他们的一些其他的方式。最终,您需要这些文件名的列表,您需要某种编程导出文件名的方式。

+0

谢谢你的回答,但有什么办法可以让我不需要列出100多份文件的路径? (在“文件”字段?) –

+1

也许,你到目前为止尝试过什么?您几乎没有详细说明这些文件存在的位置,或者文件列表可以如何派生(即,从读取目录等) –

+0

这些文件位于桌面上的文件夹内。 C:/Users/arancela/Desktop/TEST/ 这些文件全部以“MM_”开头,然后有数字从1到300,但是,数字的命名约定并没有在3位数字上完成,所以它们不遵循除了具有相同的前3个字符外,还组织了模式 我想要更改的工作表被称为“列表” 感谢您的帮助 –