Excel宏怎么写
发布网友
发布时间:2022-05-01 17:55
我来回答
共3个回答
热心网友
时间:2022-06-20 16:12
sub 整理()
dim a%,b%,c%,d%,mc$,i%,j%,k%
a=5 '在这里输入条件1所在列的列号,若为E则输入5,若为F则输入6
b=6 '在这里输入条件2所在列的列号
c=2 '在这里输入表头所在行的行号
d=22 '在这里输入表格最后一行有效内容的行号
mc="Sheet1" '在这里输入表格所在工作表标签的名称并用英文的双引号包括,不是文件名称,例如标签名称为:材料表,则输入:"材料表"
k=2
with sheets(mc)
for i=c to d
if i=c or (.cells(i,a)=1 and .cells(i,b)=1) then
for j=1 to b
.cells(d+k,j)=.cells(i,j)
k=k+1
next
end if
next
end with
end sub
热心网友
时间:2022-06-20 16:12
sub t()
for i=[a65536].end(xlup).row to 3 step -1
if cells(i,5)<>1 or cells(i,6)<>1 then rows(i).delete
next
end sub
追问
你好,谢谢回答。
有以下疑问能帮忙解决吗?
条件1和条件2所在的列不固定的,可能这个Excel中是EF列,但在别的Excel中可能是XY列,所以能否搜索出条件1和条件2所在的列?Excel中只有一个条件1和条件2,所以搜索出来的是唯一的。
能否判断A列的单元格底色是红色的,然后把红色的这一行也删除,可以做到吗?
追答Sub t()
Dim rng1 As Range
Dim rng2 As Range
With ActiveSheet
Set rng1 = .UsedRange.Find("条件1", SearchOrder:=xlByRows)
Set rng2 = .UsedRange.Find("条件2", SearchOrder:=xlByRows)
For i = .[a65536].End(xlUp).Row To 3 Step -1
If .Cells(i, rng1.Column) <> 1 Or .Cells(i, rng2.Column) <> 1 Or .Cells(i, 1).Interior.Color = vbRed Then Rows(i).Delete
Next
End With
End Sub
热心网友
时间:2022-06-20 16:12
得10分太少,不教你