VBA for EXCEL FAQ :
1、
Q:我有一段小程序,需要对现有的excel的格式做一些修改。主要就是添加一些行列,合并一些单元格,设置单元格的格式等等。
当程序运行的时候,只看见眼前的excel表一顿变化,眼花缭乱。
我想让程序能在静默方式下完成,完成后再updata windows 有什么办法?
或者其他可以让它不眼花缭乱的办法都可以
A:
运行前
Application.ScreenUpdating = False
运行后
Application.ScreenUpdating = True
2、
Q:
我得到一个excel的单元格地址:用cells引用是:cells(5,2)
那么它的R 1C 1地址因该对应为"B5"
有没有方便的函数帮助我在提供其中一个地址后可以转换成另一种??
A:
Expression.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)
3、
Q:
我想屏蔽掉系统的警告,不让它弹出提示框。
A:
Application.DisplayAlerts = False
4、
Q:
在EXCEL中,想获得实际用到的行数,就是有内容的行数,不算空白的部分
A:
Dim usrow as integer
Dim uscol as integer
usrow = activesheet.UsedRange.Rows.Count
uscol = activesheet.UsedRange.columns.Count
usrow是行数,uscol是列数。
5、
Q:如何去掉单元格的公式,保留它的数据?
A:
Cells(n,m).Value = Cells(n,m).Value
6、
Q:怎么改才能设置单元格底色?
A:
Range对象 . Interior . ColorIndex = 13 ‘颜色index
7、
Q:
需要把 8:00:00 这个值装换位数字 8 请问有没有相应的函数
A:
Dim x As Integer
x = Hour(CDate("8:00:00"))
8、
Q:
如何得到当前运行的XLS文档的目录???
A:
activeWorkbook.Path '当前文档的路径
activeWorkbook.FullName '带路径的当前文档名
activeWorkbook.Name '当前文档名
9、
Q:
如何在Excel中单击某一个单元格时,弹出自定义菜单?
A:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
If ActiveCell.row= 3 and activecells.column=3 Then
userform1.show
End If
End Sub
10、
Q:
下面是宏里的一段代码,功能是这样的:在sheet1表中,当鼠标选取某一行时,就将这行的第一列值赋给sheet2表的第四行第二列。
目的是以录制宏的方式实现这样的代码?请指教~·!
Row = ActiveCell.Row
Sheets("sheet2").Cells(4, 2).Value = Cells(Row, 1).Value
A:
Row = ActiveCell.Row
Sheets("sheet2").Cells(4, 2).Value = Sheets("sheet1").Cells(Row, 1).Value
或
Sheets("sheet2").Cells(4, 2).Value =activecell.value
都可以。