删除excel中的特定列
我有一个excel表格,格式如下: 我只想删除第一行(“A”)中没有值1的列。我知道要删除列,我可以使用以下方法:删除excel中的特定列,excel,Excel,我有一个excel表格,格式如下: 我只想删除第一行(“A”)中没有值1的列。我知道要删除列,我可以使用以下方法: Columns("E:E").Select Selection.Delete Shift:=xlToLeft 任何帮助都会很好 一些给我带来错误的解决方案是: Sub Delete_Column_Excel_VBA() Dim Firstcolumn, fcol As Long Dim Lastcolumn As Long With ActiveShe
Columns("E:E").Select
Selection.Delete Shift:=xlToLeft
任何帮助都会很好
一些给我带来错误的解决方案是:
Sub Delete_Column_Excel_VBA()
Dim Firstcolumn, fcol As Long
Dim Lastcolumn As Long
With ActiveSheet
.Select
Firstcolumn = .UsedRange.Cells(1).Column
Lastcolumn = .UsedRange.Columns(.UsedRange.Columns.Count).Column
For fcol = Firstcolumn To Lastcolumn
With .Cells(fcol, "1")
If .value <> 1 Then .EntireColumn.Delete
End With
Next fcol
End With
Sub Delete\u Column\u Excel\u VBA()
Dim Firstcolumn,fcol尽可能长
将最后一列变长
使用ActiveSheet
.选择
Firstcolumn=.UsedRange.Cells(1.Column)
Lastcolumn=.UsedRange.Columns(.UsedRange.Columns.Count).Column
对于fcol=从第一列到最后一列
带.单元格(fcol,“1”)
如果.value为1,则.entireclumn.Delete
以
下一个fcol
以
如果删除第一行中值不为1的列,则表的结尾应如下所示:
这修复了您的错误,但我认为在这之后仍然存在一个逻辑错误:
With .Cells(fcol, 1)
Excel希望引用用数字表示,而不是像您那样用字符串表示。那么在你的如果中,我认为应该是相反的。您可能应该与“1”进行比较,否则它会删除所有内容(在我的计算机上尝试过)。试试这个
Sub Delete_Column_Excel_VBA()
Dim cl As Range, rng As Range
For Each cl In ActiveSheet.UsedRange.Rows(1).Cells
If cl <> 1 Then
If rng Is Nothing Then
Set rng = cl
Else
Set rng = Union(rng, cl)
End If
End If
Next
rng.EntireColumn.Delete
End Sub
Sub Delete\u Column\u Excel\u VBA()
尺寸cl作为范围,rng作为范围
对于ActiveSheet.UsedRange.Rows(1.Cells)中的每个cl
如果是cl 1,那么
如果rng不算什么,那么
设置rng=cl
其他的
设置rng=接头(rng,cl)
如果结束
如果结束
下一个
rng.entireclumn.Delete
端接头
您试过什么吗?你至少应该能够想出一些伪算法。你会得到什么错误?在哪一行?应用程序定义或对象定义行中有.Cells(fcol,“1”)错误谢谢,仍然删除所有内容,我只需要删除第1行中有1的列,并将剩余值移到左边谢谢我更新了我希望最终表格的外观,你能检查一下吗?谢谢@chris neilsen,我已经修改了它,现在我得到了我想要的结果