清除与多个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工作表中的列对应的值的主要内容,如果未能解决你的问题,请参考以下文章
Access VBA:删除单元格值与 Access 表中的值匹配的 Excel 行