Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一次检查多张Excel表格_Excel_File_Directory_Hidden Field - Fatal编程技术网

一次检查多张Excel表格

一次检查多张Excel表格,excel,file,directory,hidden-field,Excel,File,Directory,Hidden Field,我得到了一个包含大约200张Excel电子表格的文件夹,需要打开其中的每一张,并“检查”其中隐藏的行或表格。有没有一种方法可以做到这一点而不必单独打开每个文件?使用Powershell,您可以安装Doug Finke的ImportExcel Powershell模块 Find-Module ImportExcel | Install-Module (导入此处的帮助'https://www.powershellgallery.com/packages/ImportExcel/") 然后,您可以使

我得到了一个包含大约200张Excel电子表格的文件夹,需要打开其中的每一张,并“检查”其中隐藏的行或表格。有没有一种方法可以做到这一点而不必单独打开每个文件?

使用Powershell,您可以安装Doug Finke的ImportExcel Powershell模块

Find-Module ImportExcel | Install-Module
(导入此处的帮助'https://www.powershellgallery.com/packages/ImportExcel/")

然后,您可以使用Get ExcelSheetInfo选项检查.xlsx和.xlsm文件中隐藏的工作表

$FolderPath = 'DriveLetter:\path to file'
$Files = Get-ChildItem -Path $FolderPath -Include *.xlsx, *.xlsm -File -Name
$array = @()
ForEach($File in $Files){ 
$row = Get-ExcelSheetInfo $File 
$array = $array + $row
}
$array | Out-GridView

对于.xls文件,您需要首先将其转换为.xlsx,其中有许多工具和脚本可免费下载。

打开新的Excel文件,在那里打开VBA编辑器,“插入”->“模块”,在那里粘贴以下代码:

Sub search\u查找\u隐藏的\u工作表\u或\u单元格()
对象为SO的Dim:SO=CreateObject的集合(“Scripting.FileSystemObject”)
将f作为对象
将wb设置为工作簿
将ws设置为工作表
尺寸c作为范围:设置c=此工作簿。工作表(1)。单元格(1,1)
调光范围
对于oFSO.GetFolder(“C:\Temp\test”).Files中的每个f
如果f.名称像“*.xls*”那么
设置wb=Application.Workbooks.Open(f)
对于wb.工作表中的每个ws
如果ws.Visible=xlSheetHidden,则
c=“隐藏工作表”&ws.Name&“在wb”和wb.Name&“中”
设置c=c偏移量(1)
ElseIf ws.Visible=xlSheetVeryHidden然后
c=“非常隐藏的工作表”&ws.Name&“在wb”&wb.Name&“中”
设置c=c偏移量(1)
其他的
对于ws.UsedRange.Rows中的每个r
如果r.隐藏,那么
c=“隐藏行”&r.行&“在工作表”中”&ws.Name&“在工作表”中”&wb.Name&“在工作表”中”
设置c=c偏移量(1)
如果结束
下一个
对于ws.UsedRange.Columns中的每个r
如果r.隐藏,那么
c=“隐藏列”和拆分(r.Address,“$”)(3)和“在工作表中”&ws.Name&“在工作表中”&wb.Name&“在工作表中”
设置c=c偏移量(1)
如果结束
下一个
如果结束
下一个
wb.关闭
如果结束
下一个
端接头
不要将“C:\Temp\test”放在您的文件夹地址中

此代码将查找Excel文件中隐藏的所有工作表、列和行。如果有许多文件,您只需等待进程完成即可。测试后的结果如下所示:


您是否在这里查看过类似问题?“循环”可能是开始搜索的一个术语…如果答案有助于解决问题,请检查✓ 答案旁边的符号。