vba - Excel For Each ws 不会进入下一个 ws
问题描述
背景——我正在使用一个工作簿,其中包含一大堆工作表和大量受到公式影响的数据。我想用这段代码完成几个步骤:
- 取消隐藏所有隐藏的行/列
- 粘贴只有值/格式的所有数据。
我能够在一个工作表上成功完成这些任务,但它不会继续 - 它试图继续在同一个工作表上一遍又一遍地重复相同的操作。
Sub Macro1
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
'Have also tried "For Each ws In ThisWorkbook.Worksheets at other users suggestions.
ws.Cells.Activate
ws.Cells.EntireColumn.Hidden = False
ws.Cells.EntireRow.Hidden = False
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If
ws.Cells.Activate
ws.Cells.Copy
ws.Cells.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'I put these in here thinking that it might be related to the copying/pasting
'action that was prohibiting it from changing sheets.
Application.CutCopyMode = False
ws.Cells(1, 1).Select
Next ws
End Sub
非常感谢任何帮助!!!近一个星期以来,我一直在拔头发(字面意思)试图解决这个问题……我快绝望了!谢谢!
解决方案
尝试以下操作:
Sub Macro1
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Cells.EntireColumn.Hidden = False
ws.Cells.EntireRow.Hidden = False
If ws.FilterMode Then ws.ShowAllData
ws.UsedRange.Value = ws.UsedRange.Value
Next ws
End Sub
推荐阅读
- python - 无法使用新观察值更新 StatsModels SARIMAX (ValueError)
- json - 如何使用 Json 解析图像中突出显示的部分
- gruntjs - 为什么它说找不到任务“说话”。使用 --force 继续
- hive - HIVEQL,每天记录的数量
- java - 使用 $class 定义访问对象属性
- python - 多次连续“写入文件”调用后出现权限错误
- python - 格式为“2019 年 3 月 3 日星期四”的 Python Pandas 日期希望转换为 %m/%d/%y
- r - 如何基于具有应用或 purrr 函数的自定义函数获取具有多行的数据框?
- c# - 使用 Moq 模拟方法数组参数
- python-3.x - 在pandas数据框Python中以HH:MM:SS格式计算两个日期列(具有nan值)的差异