删除空白行
'删除指定单元格范围记录中有空行的
'该操作实际上是查找并定位Ctlr+G空白单元格的,在实际使用上如果单元格空白则删除整行的情况
'(适用于某列中查询空白单元格则删除整行的操作)
Range("B2:B30").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete
?
删除重复项
'删除指定单元格范围内部的重复项,其中columns:=1的参数表示查找依据为第一列,也就是下面例子中的B列,并不会判断C,D两列。
Range("b2:d50").RemoveDuplicates Columns:=1, Header:=xlNo
?
变量声明简化写法:Currency@????????Double #????????Integer %????????Long &???????? Single!????????String$????????Variant ?( 无 ), 如dim i%,表示整数型。
?
显示隐藏列或者行
If Columns("j").Hidden Then
Columns("j").Hidden = False
Else
Columns("j").Hidden = True
End If
跳转到指定行:(如跳转到第10行)
Application.Goto reference:=Range("a10:a10"), Scroll:=True
'页面可视范围跳转到该汇总表位置,
?
自动根据某列内容自动分组,如某列有内容则作为第1级,不存在则作为第2级
'合并组-----------(start)
'首先清除所有合并组
Cells.Select
Selection.ClearOutlinestartid = 2
For ixy = 2 To endline
'一般默认从第2行开始,因为第一行大多都是带有内容的,所以第一行一般默认
'作为第一级的分组,也就是建议一般从需要分组的行+1开始执行比较合理
If Cells(ixy, "a") <> "" Then '表示读到了下一个有内容的行
If startid = ixy Then
'上面这行作用是防止连续存在内容的行合并为组,譬如读到了10行,这时候执行一遍if判断后的stratid=11,
'这时候读到ixy读到下一行则是11,如果11行同样是存在内容,这时候合并就不合理了,应该在继续读下面一行
'所以添加一个判断,如果连续行则把开始行startid+1,并执行下一个循环。
startid = ixy + 1
Else
'如果正常,则开始分组,首先将结束行作为当前行的上一行,主要是先合并上面内容的分组
'从startid到endid之间合并分组
endid = ixy - 1
Rows(startid & ":" & endid).Select
Selection.Rows.Group
With ActiveSheet.Outline
.AutomaticStyles = False
.SummaryRow = xlAbove
.SummaryColumn = xlRight
End With
startid = ixy + 1
End If
End If
Next ixy
'合并组-----------(end)
?
‘删除指定区域的某列中的重复项
‘比如下面的代码就是删除A2:J50区域,寻找B列(也就是第2列,不包含标题,如果包含标题那么header:=xlyes)
''删除指定区域的某列中的重复项
'比如下面的代码就是删除A2:J50区域,寻找B列(也就是第2列,不包含标题,如果包含标题那么header:=xlyes)
Range("A2:J50).RemoveDuplicates Columns:=2, Header:=xlNo
'判断某个单元格是否存在公式
[a1].HasFormula = True
'窗体userform的两个记录
userform1.show 0 '这个0参数表示无模式状态,还一种为1参数,表示模式状态,两者的区域就是模式状态1参数 _
'执行到该show的地方就暂停运行,不会执行下面的代码。而0则继续执行下面的代码。
'userform1中的参数showmodal默认为true,一般要设为flase,区别在于窗体是否一直前置。
?