作者:乔山办公网日期:
返回目录:excel表格制作
下面是一个简单的例子,设定单元格A5的格式,'后为解释,程序运行时会忽略。
Sub Macro1()
Range("B5").Select '选中某单元格
Selection.Font.ColorIndex = 4 '字体颜色设为e79fa5e98193e78988e69d83335绿色
Selection.Interior.ColorIndex = 6 '单元格颜色设为黄色
Selection.Font.Bold = True '字体加粗
Selection.Font.Name = "Arial" '设字体为Arial
Selection.Font.Size = 12 '设字体大小为12
End Sub
下面的例子是得到某单元格的部分格式属性
Sub test()
Range("B5").Select
MsgBox Selection.Font.ColorIndex
MsgBox Selection.Interior.ColorIndex
MsgBox Selection.Font.Bold
MsgBox Selection.Font.Name
MsgBox Selection.Font.Size
End Sub
初学者,先使用工具,宏,录制宏,然后出现一类似录音机按钮,你做些单元格设置等动作,然后按停止按钮。再到工具,宏,VBA编辑器,左上窗口的模块,模块1,宏1,打开,可以看到一些代码,回忆你刚才坐的动作。慢慢练习。
你还可以把下面的例子粘到刚才宏的窗口中,把窗口弄小些,点上面的放音按钮,可以看到宏 是如何工作的:
Sub test2()
Dim i As Byte
For i = 1 To 30
Cells(i, 1) = i
Cells(i, 2).Interior.ColorIndex = i
Next i
End Sub
另外,最常见的语句还有IF Then End:
在上面例子的next i之前粘贴如下语句:
If i = 3 Then
i = i + 1
End If
会把A3和 B3 跳过。
熟能生巧。
VBA中表示单元格的值有很多种,比如知A1单元道格的值
range("A1")
cells(1,1) 或cells(1,"A")
[A1]
VBA中单元格属性默认是值,但如果指专定为value属性,可以提高代码运行速度属
上述的表示方式为:
range("A1").value
cells(1,1).value 或cells(1,"A").value
[A1].value
单元格的属百性包括很多,包括地址、是否含度有批注、是否含有合并单元格等。
如下知代码分别求得其地道址和做批注、合并单元格的判断。
Sub myText()
MsgBox "地址是" & Cells(1, 1).Address
If Cells(1, 1).Comment Is Nothing Then
MsgBox "无批注"
Else
MsgBox "有批版注"
End If
Dim myrange As Range
Set myrange = Cells(1, 1)
If myrange.MergeCells Then
MsgBox "有合并单元权格"
Else
MsgBox "无合并单元格"
End If
End Sub