清除与多个Excel工作表中的列对应的值

Posted

技术标签:

【中文标题】清除与多个Excel工作表中的列对应的值【英文标题】:Clearing values corresponding to a column in multiple excel sheets 【发布时间】:2018-12-07 19:09:36 【问题描述】:

我有 300 张 20 列的 excel 表(包括“状态”列)。我想将所有 excel 表中与“状态”列对应的值清除为空白,而无需打开每个表。目前我习惯手动执行此操作,但这很耗时。请为此提出最佳解决方案。可以使用宏来完成吗?

【问题讨论】:

请展示您到目前为止所做的尝试。 Stack Overflow 不是免费的代码编写服务。阅读How to Ask 和No attempt was made 以改进您的问题。 要回答您的问题,是的,这可以通过宏来完成。这可能是最好的解决方案。 【参考方案1】:

实现此目的的一种方法如下,假设您要清除的列是 A 列,并且从第 2 行到最后一行进行清除:

Sub foo()
Dim ws As Worksheet
Dim LastRow As Long
Application.ScreenUpdating = False 'disable ScreenUpdating to optimize the processing speed
Application.Calculation = xlCalculationManual 'change to manual to optimize the running of the code

For Each ws In ThisWorkbook.Worksheets 'loop through worksheets
    LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 
    'get the last row with data in each worksheet
    ws.Range("A2:A" & LastRow).Clear 
    'clear the specified range, in this case from Row 2 to Last
Next ws

Application.Calculation = xlCalculationAutomatic 'enable automatic calculations once code has finishe
Application.ScreenUpdating = True 're-set the screen updating
End Sub

【讨论】:

我们是否需要为每个 Excel 工作表运行此宏。是否有可能我们可以提供工作表名称和 Excel 文件位置,并且一次我们可以从 300 个 Excel 工作表中清除字段值。 这个宏将遍历你的工作簿/电子表格中的所有工作表,当然你也可以修改它来只在给定的工作表上这样做,但我相信我已经用这段代码回答了你最初的问题...

以上是关于清除与多个Excel工作表中的列对应的值的主要内容,如果未能解决你的问题,请参考以下文章

使用 XLRD 从 excel 表中的列中读取 int 值

如何使用列名在 Excel 过滤表中选择多个不相邻的列

Access VBA:删除单元格值与 Access 表中的值匹配的 Excel 行

excel工作表如何设置公式,如A1不为空,则C1返回B1的值

excel两个工作表如何关联

在excel中如何查询一个字段对应的多个字段的内容