vba - 在所有单元格、所有工作表、整个工作簿中执行代码

标签 vba excel

我的问题是我正在尝试创建一个代码,如果它包含一个值,则将单元格值更改为“X”,需要检查多个工作表中的每个单元格(我很清楚这可能需要很长时间!)。

此应用程序适用于“结构”比实际值更重要的巨大矩阵。很复杂,很难解释(由第3方和非常旧系统创建,然后导出到excel)

我确定我的思路是正确的,但这只是行不通,我在 For Each Cell In ws 行出现“方法不支持”错误

Sub Usage_X()

Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets
ws.Activate
    For Each Cell In ws
        If Cell.Value <> "" Then
            Cell.Value = "X"
        End If
    Next
Next


End Sub

最佳答案

我相信您需要遍历一个范围内的每个单元格,而不是在工作表中。所以修改为阅读

Sub Usage_X()

Dim ws As Worksheet

For Each ws In ActiveWorkbook.Worksheets
Set rng = ws.UsedRange
    For Each Cell In rng
        If Cell.Value <> "" Then
            Cell.Value = "X"
        End If
    Next Cell
Next ws


End Sub

关于vba - 在所有单元格、所有工作表、整个工作簿中执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24496624/

相关文章:

ms-access - Int() 函数 MS Access VBA

excel - 如何避免在 Excel VBA 中使用 Select

vba - 从多个Excel文件中提取特定单元格并将其编译为一个Excel文件

vba - 识别Excel中的换行符VBA

excel - 在 excel 2013 中键入不匹配错误,但在使用 ADODB.Recordset 时在 excel 2010 中有效

vba - 百分比之间的 Excel VBA 自动筛选

VBA:.copy 后编译错误

vba - 从 VBA 宏出来的 excel 公式的意外变化

excel - 我想对工作表中的每 7 行求和,并将总和放在不同的列和行中

excel - 如果一列中存在重复,则删除整行