虽然做了Auditor,但不能荒废我计算机专业的底子。做了这么多项目了,编了几个常用的宏,放上来分享。如果你不知道如何自定义按钮并绑定宏的话,基本上就可以忽略此篇文章了……不过要是想用下面的宏的话,我可以帮忙免费安装~看~我人多好~
(由于WP的问题,所有的引号都被自动转换为中文格式,请需要者自行修改)
1.将所选单元格标定为绿色,一般做Highlight用。当然了,可以定义多种颜色来区别不同属性的单元格,就比如我,自定义了五种颜色:黄,红,蓝,橙,蓝……
Sub 单元格染成绿色()
With Selection.Interior
.ColorIndex = 43
.Pattern = xlSolid
End With
End Sub
2.将所选单元格的格式在`General`和`底稿专用格式`之间切换。这里的`底稿专用格式`指不保留小数位,标记千分位,负数用括弧红字表示的格式,例如(43,672,135)。这种格式标记贷方数非常合适,非常Pro~
Sub 单元格显示格式()
If Selection.NumberFormat <> "General" Then
With Selection
.NumberFormat = "General"
End With
ElseIf Selection.NumberFormat = "General" Then
With Selection
.NumberFormat = "_(* #,##0_);[Red]_(* (#,##0);_(* ""-""??_)"
End With
ElseIf Selection.NumberFormat = "_(* #,##0_);[Red]_(* (#,##0);_(* ""-""??_)" Then
With Selection
.NumberFormat = "General"
End With
End If
End Sub
3.让所选单元格中的文字自动适应定义的单元格的宽,也就是自动换行。这个省去了为选定`Format Cells`中`Wrap text`的若干次点击。
Sub 自动换行()
If TypeName(Selection) = "Range" Then
Selection.WrapText = Not ActiveCell.WrapText
Selection.VerticalAlignment = xlTop
End If
End Sub
下面三个宏都是从KP开发的强大的Excel插件EQUXI中提取的精华:
4.将所选单元格中的数字的符号进行变换。这个很有用了,就是正变负,负变正了,说Pro一点就是,借变贷,贷变借了。再配合第2个宏使用,那简直是完美~
Sub 正负号转换()
On Error GoTo ErrorHandler
Dim my_cell As Range, s As String, r As Range
Set r = Application.Intersect(ActiveSheet.Cells.SpecialCells(xlCellTypeConstants), Selection)
If Not r Is Nothing Then
For Each my_cell In r
If IsNumeric(my_cell.Value) Then my_cell.Value = -my_cell.Value
Next my_cell
End If
ErrorHandler:
End Sub
5.将所选单元格中的数字加总后粘贴到粘贴板。有时候需要加总不连续单元格中的数,这个宏就省去了若干麻烦的过程,只需一次点击就能完成多步,直接粘贴数值就好了~
Sub 所选区域加总后复制到粘贴板()
On Error Resume Next
Dim my_range As Range
Dim i As Double
Dim Clipbrd As New DataObject
Set myRange = Selection.Cells.SpecialCells(xlCellTypeVisible)
i = Application.Sum(myRange)
Clipbrd.SetText i
Clipbrd.PutInClipboard
Set myRange = Nothing
End Sub
6.打开当前文件所在文件夹。
Sub 打开当前文件所在文件夹()
Const PROC_NAME As String = "OpenExplorerDirectory"
On Error Resume Next
Shell "explorer.exe /n,/e," & Application.Substitute(ActiveWorkbook.FullName, ActiveWorkbook.Name, ""), vbMaximizedFocus
On Error GoTo 0
End Sub
pro~~相当pro~回头我试一下~