标签归档:Excel

Excel Tricks:自用Macro

虽然做了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

Excel Tricks:组合Group中的数据怎么复制

Excel 组合 Group提问:一个已被组合后的数据 怎样才能只复制合计行而并不复制已经被隐藏的合计行之间的明细?

回答:
1.中文版Excel方法简单描述
按CTRL+G,弹出定位对话框,定位条件选可见单元格,然后再复制即可。
2.英文版Excel方法详细描述
(1)选中需要复制的单元格;
(2)Ctrl+G,调出Go To对话框;
(3)点击对话框左下角的Special...,调出Go To Special对话框;
(4)选中Go To Special对话框右侧倒数第三个选项Visible cell only;
(5)点OK;
(6)Ctrl+C,复制;
(7)点选粘贴的单元格;
(8)Ctrl+V,粘贴。