excel - if then 语句删除列
问题描述
VBA 新手,试图了解如何为数据清理目的编写高效代码。
我有一个电子表格,我的第一步是删除带有某些标题的整个列(大约 25 个)。我尝试为每个标题编写 If Then 语句,但我发现它仅适用于第一项,然后我收到错误 424(对象未定义)。我还没有完全理解 VBA 结构,所以不确定如何更有效地编写它
Sub DataCleaning()
Set MR = Range("A1:ZA1")
For Each Cell In MR
If Cell.Value = "subject" Then Cell.EntireColumn.Delete
If Cell.Value = "Study" Then Cell.EntireColumn.Delete
If Cell.Value = "site" Then Cell.EntireColumn.Delete
End Sub
这段代码最终也会有一系列额外的步骤,比如重新标记标题并将应用于多个选项卡,因此不一定总是找到每个标题。
任何有助于更好地构建这个结构的帮助将不胜感激!
解决方案
试试这个:
Sub DataCleaning()
For i = 677 To 1 Step -1
With Cells(1, i)
v = .Value
If v = "subject" Or v = "Study" Or v = "site" Then
.EntireColumn.Delete
End If
End With
Next i
End Sub
推荐阅读
- javascript - 在 Document 节点上循环(包括 childrens )
- java - 我可以随机播放 2 个与我想要的匹配的数组列表吗?
- javascript - 如何在点击时调用 Jquery 按钮?
- html - iframe 引导期间的 Angular 应用程序路由
- mongodb - MongoDB Aggregate 在 Loopback 中未按预期工作
- python - numpy 矩阵不相等,即使它们看起来相同
- python - 带有 2 个 for 循环的列表理解提供了太多需要解包的值
- android - 进度条不能隐藏
- javascript - `data` 在 vue.js 的 `created` 方法中不可用
- javascript - 强制浏览器使用特定分辨率