用過VB的人都應(yīng)該知道如何聲明變量,在VBA中聲明變量和VB中是完全一樣的!
使用Dim語(yǔ)句
Dim a as integer ‘聲明a為整型變量
Dim a ‘聲明a為變體變量
Dim a as string ‘聲明a為字符串變量
Dim a as currency ,b as currency ,c as currency ‘聲明a,b,c為貨幣變量
......
聲明變量可以是:Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(當(dāng)前不支持)、Date、String(只限變長(zhǎng)字符串)、String * length(定長(zhǎng)字符串)、Object、Variant、用戶定義類型或?qū)ο箢愋汀?br>
強(qiáng)制聲明變量
Option Explicit
說(shuō)明:該語(yǔ)句必在任何過程之前出現(xiàn)在模塊中。
聲明常數(shù)
用來(lái)代替文字值。
Const
‘ 常數(shù)的默認(rèn)狀態(tài)是 Private。
Const My = 456
‘ 聲明 Public 常數(shù)。
Public Const MyString = "HELP"
‘ 聲明 Private Integer 常數(shù)。
Private Const MyInt As Integer = 5
‘ 在同一行里聲明多個(gè)常數(shù)。
Const MyStr = "Hello", MyDouble As Double = 3.4567
選擇當(dāng)前單元格所在區(qū)域
在EXCEL97中,有一個(gè)十分好的功能,他就是把鼠標(biāo)放置在一個(gè)有效數(shù)據(jù)單元格中,執(zhí)行該段代碼,你就可以將連在一起的一片數(shù)據(jù)全部選中。只要將該段代碼加入到你的模塊中。
Sub My_Select
Selection.CurrentRegion.Select
End sub
返回當(dāng)前單元格中數(shù)據(jù)刪除前后空格后的值
sub my_trim
msgbox Trim(ActiveCell.Value)
end sub
單元格位移
sub my_offset
ActiveCell.Offset(0, 1).Select‘當(dāng)前單元格向左移動(dòng)一格
ActiveCell.Offset(0, -1).Select‘當(dāng)前單元格向右移動(dòng)一格
ActiveCell.Offset(1 , 0).Select‘當(dāng)前單元格向下移動(dòng)一格
ActiveCell.Offset(-1 , 0).Select‘當(dāng)前單元格向上移動(dòng)一格
end sub
如果上述程序產(chǎn)生錯(cuò)誤那是因?yàn)閱卧癫荒芤苿?dòng),為了解除上述錯(cuò)誤,我們可以往
sub my_offset 之下加一段代碼 on error resume next
注意以下代碼都不再添加 sub “代碼名稱” 和end sub請(qǐng)自己添加!
給當(dāng)前單元格賦值
ActiveCell.Value = "你好!??!"
給指定單元格賦值
例如:A1單元格內(nèi)容設(shè)為"HELLO"
Range("a1").value="hello"
又如:你現(xiàn)在的工作簿在sheet1上,你要往sheet2的A1單元格中插入"HELLO"
1.
sheets("sheet2").select
range("a1").value="hello"
或
2.
Sheets("sheet1").Range("a1").Value = "hello"
說(shuō)明:
1.sheet2被選中,然后在將“HELLO"賦到A1單元格中。
2.sheet2不必被選中,即可“HELLO"賦到sheet2 的A1單元格中。
隱藏工作表
‘隱藏SHEET1這張工作表
sheets("sheet1").Visible=False
‘顯示SHEET1這張工作表
sheets("sheet1").Visible=True
打印預(yù)覽
有時(shí)候我們想把所有的EXCEL中的SHEET都打印預(yù)覽,請(qǐng)使用該段代碼,它將在你現(xiàn)有的工作簿中循環(huán),直到最后一個(gè)工作簿結(jié)束循環(huán)預(yù)覽。
Dim my As Worksheet
For Each my In Worksheets
my.PrintPreview
Next my
得到當(dāng)前單元格的地址
msgbox ActiveCell.Address
得到當(dāng)前日期及時(shí)間
msgbox date & chr(13) & time
保護(hù)工作簿
ActiveSheet.Protect
取消保護(hù)工作簿
ActiveSheet.Unprotect
給活動(dòng)工作表改名為 "liu"
ActiveSheet.Name = "liu"
打開一個(gè)應(yīng)用程序
AppActivate (Shell("C:\WINDOWS\CALC.EXE"))
增加一個(gè)工作表
Worksheets.Add
刪除活動(dòng)工作表
activesheet.delete
打開一個(gè)工作簿文件
Workbooks.Open FileName:="C:\My Documents\Book2.xls"
關(guān)閉活動(dòng)窗口
ActiveWindow.Close
單元格格式
選定單元格左對(duì)齊
Selection.HorizontalAlignment = xlLeft
選定單元格居中
Selection.HorizontalAlignment = xlCenter
選定單元格右對(duì)齊
Selection.HorizontalAlignment = xlRight
選定單元格為百分號(hào)風(fēng)格
Selection.Style = "Percent"
選定單元格字體為粗體
Selection.Font.Bold = True
選定單元格字體為斜體
Selection.Font.Italic = True
選定單元格字體為宋體20號(hào)字
With Selection.Font
.Name = "宋體"
.Size = 20
End With
With 語(yǔ)句
With 對(duì)象
.描述
End With
清除單元格
ActiveCell.Clear ‘刪除所有文字、批注、格式
返回選定區(qū)域的行數(shù)
MsgBox Selection.Rows.Count
返回選定區(qū)域的列數(shù)
MsgBox Selection.Columns.Count
返回選定區(qū)域的地址
Selection.Address
忽略所有的錯(cuò)誤
ON ERROR RESUME NEXT
遇錯(cuò)跳轉(zhuǎn)
on error goto err_handle
‘中間的其他代碼
err_handle: ‘ 標(biāo)簽
‘跳轉(zhuǎn)后的代碼
刪除一個(gè)文件
kill "c:\1.txt"
定制自己的狀態(tài)欄
Application.StatusBar = "現(xiàn)在時(shí)刻: " & Time
恢復(fù)自己的狀態(tài)欄
Application.StatusBar = false
用代碼執(zhí)行一個(gè)宏
Application.Run macro:="text"
滾動(dòng)窗口到a1的位置
ActiveWindow.ScrollRow = 1
ActiveWindow.ScrollColumn = 1
定制系統(tǒng)日期
Dim MyDate, MyDay
MyDate = #12/12/69#
MyDay = Day(MyDate)
返回當(dāng)天的時(shí)間
Dim MyDate, MyYear
MyDate = Date
MyYear = Year(MyDate)
MsgBox MyYear
inputbox<輸入框>
XX=InputBox ("Enter number of months to add")
得到一個(gè)文件名
Dim kk As String
kk = Application.GetOpenFilename("EXCEL (*.XLS), *.XLS", Title:="提示:請(qǐng)打開一個(gè)EXCEL文件:")
msgbox kk
打開zoom對(duì)話框
Application.Dialogs(xlDialogZoom).Show
激活字體對(duì)話框
Application.Dialogs(xlDialogActiveCellFont).Show
打開另存對(duì)話框
Dim kk As String
kk = Application.GetSaveAsFilename("excel (*.xls), *.xls")
Workbooks.Open kk