删除空白行

'删除指定单元格范围记录中有空行的
'该操作实际上是查找并定位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,区别在于窗体是否一直前置。

?