Excel使用PowerShell每个工作表内存使用情况
我有一个有10个工作表的Excel工作簿。 我想找出使用Power-Shell的每个Excel工作表使用的内存。 我试图加载Com对象,并检查属性,但没有运气!
$application = New-Object -ComObject excel.application $wb=$application.workbooks.open("C:\Model_Q.xlsx") $wb.sheets |gm
任何想法如何做到这一点?
这可能不是你正在寻找的答案,因为它不在PowerShell中,但是我发现了一个在Excel中使用VBA的非常简单的解决scheme,并且现在看到你没有答案,这是值得的! (1)在Excel中打开工作表,按Alt + F11,右键单击工作簿,然后单击插入>模块。 (2)粘贴到下面的VBA脚本中:
Sub WorksheetSizes() Dim xWs As Worksheet Dim Rng As Range Dim xOutWs As Worksheet Dim xOutFile As String Dim xOutName As String xOutName = "SheetSizesinBits" xOutFile = ThisWorkbook.Path & "\TempWb.xls" On Error Resume Next Application.DisplayAlerts = False Err = 0 Set xOutWs = Application.Worksheets(xOutName) If Err = 0 Then xOutWs.Delete Err = 0 End If With Application.ActiveWorkbook.Worksheets.Add(Before:=Application.Worksheets(1)) .Name = xOutName .Range("A1").Resize(1, 2).Value = Array("Worksheet Name", "Size") End With Set xOutWs = Application.Worksheets(xOutName) Application.ScreenUpdating = False xIndex = 1 For Each xWs In Application.ActiveWorkbook.Worksheets If xWs.Name <> xOutName Then xWs.Copy Application.ActiveWorkbook.SaveAs xOutFile Application.ActiveWorkbook.Close SaveChanges:=False Set Rng = xOutWs.Range("A1").Offset(xIndex, 0) Rng.Resize(1, 2).Value = Array(xWs.Name, VBA.FileLen(xOutFile)) Kill xOutFile xIndex = xIndex + 1 End If Next Application.ScreenUpdating = True Application.Application.DisplayAlerts = True End Sub
(3)将工作簿保存为启用macros的工作簿。 (4)closures开发人员屏幕,然后按Alt + F8。 (5)select我们刚制作的macros并运行它。 这将创build一个新的工作表,并以位为单位build立每个工作表大小的表格。
祝你好运!
- VBA Excel如何激活工作表1中的工作表2,3和4的macros
- EXCEL 2007 – 需要帮助创build一个button,它将活动工作表的内容粘贴到一个新的工作表中
- 如何确定EPPlus中最近查看的工作表(“ActiveSheet”)
- 将不同工作表的前3列复制到单个文件中
- 如何创buildExcel工作表并将其添加到Excel InterOp中的多个工作簿
- OpenXML电子表格删除行导致excel不可读的内容错误
- VBA Excel:如何执行一个列中的每个单元格的function,并循环所有工作簿?
- 如何通过在另一个工作簿中的VBA对象名称引用Excel工作表?
- 将活动工作表复制到另一个工作簿中:范围类的复制方法失败