一点VBA
1、ALT+F11启动Excel宏编程
2、宏设置在 文件-->选项-->信任中心-->宏设置,修改为启用。
3、Excel中VBA编程使用 VB语法,‘表示注释
编写了Excel部分格式操作
Private Sub Worksheet_Activate() 隐藏注释行 End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) 隐藏注释行 '先隐藏所有代码 r = Target.Row c = Target.Column Range(CStr(r) + ":" + CStr(r)).EntireRow.Hidden = False '当前行显示 If r Mod 2 = 0 Then Range(CStr(r + 1) + ":" + CStr(r + 1)).EntireRow.Hidden = False '当前行为偶数时,下一行数据也显示 If c = 1 And (Cells(r - 1, 1).MergeCells = True Or r = 2) Then '如果选中第一列时,并且上一列为合并单元格时则把奇数列合并 Range(Cells(r + 1, 2), Cells(r + 1, 5)).Merge '先合并下一行,备注列 Cells(r + 1, 2).HorizontalAlignment = xlLeft '合并后的单元格居左显示 Range(Cells(r, 1), Cells(r + 1, 1)).Merge '合并第当前行和下一行第一列单元格为一列 Range(Cells(r, 6), Cells(r + 1, 6)).Merge '合并最后当前行和下一行最后一列单元格为一列 End If End If If c = 2 And Selection.MergeCells = False And Cells(r, 1).MergeCells = True Then '当前列为第二列且非合并单元格,且第一列为合并单元格时,添加数据约束 ''添加数据有效性 With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="新增,修改" .InCellDropdown = True End With Else With Selection.Validation.Delete End With End If End Sub
Sub 隐藏注释行() For i = 2 To ActiveSheet.UsedRange.Rows.Count If i Mod 2 = 1 And Cells(i, 2) = "" Then '条件判断 Range(CStr(i) + ":" + CStr(i)).EntireRow.Hidden = True '内容空时隐藏 Else Range(CStr(i) + ":" + CStr(i)).EntireRow.Hidden = False '内容非空时显示 End If Next End Sub

浙公网安备 33010602011771号