vba 個人使用總結筆記
1.獲取A列最後一個不為空的單元格,表名.[A65536].End(xl方向).Row
lastNotEmptyRow = Sheet1.[a65536].End(xlUp).Row
2.獲取第一行最後一個不為空的單元格,表名.[A65536].End(xl方向).Column
lastNotEmptyColumn = Cells(2, 255).End(xlToLeft).Column
3.獲取當前日期,當前日期和時刻
current_date = Date
current_date_time = Now
4.日期相加,加一天/一月/一年的函式,DateAdd(interval, number, date)interval 必要。字串表示式,是所要加上去的時間間隔。
number 必要。數值表示式,是要加上的時間間隔的數目。其數值可以為正數(得到未來的日期),也可以為負數(得到過去的日期)。
date 必要。Variant(Date)
或表示日期的文字,這一日期還加上了時間間隔。
interval引數具有以下設定值:
設定描述
yyyy 年
q 季
m 月
y 一年的日數
d 日
w 一週的日數
ww 周
h 時
n 分鐘
s 秒
dateAddDay= DateAdd("d", 1, today)
dateAddMonth= DateAdd("m", 1, today)
dateAddYear= DateAdd("y", 1, today)
5.vba連線資料庫
MySQL連線ODBC字串connstrMySQL = "Driver={" & driver & "};Server = " & sevIP & ";DB=" & DNS & ";UID=" & username & ";PWD=" & password & ";OPTION= 3 ;"
Oracle連線OLE字串connstr_Oracle= "Provider = MSDAORA.1;Password=" & password & ";User ID=" & username & ";Data Source=" & DNS & ";Persist Security
Info=True"
SQLServer連線OLE字串connstr_SQLServer = "Provider=sqloledb;DSN=" & DNS & ";UID=" & username & ";PWD=" & password & ";"
Dim conn As ADODB.Connection
Dim rs1 As ADODB.Recordset
Set conn = New ADODB.Connection
Dim connstr As String
Dim connsql_if_c1 As String
conn.ConnectionString = connstr
conn.Open
Set rs1 = conn.Execute(connsql_table)
rs1.Close
conn.Close
Set rs1 = Nothing
6.在excelSheet中找對應編碼的INFO資訊,用到VLookup(mess_code, Sheet5.Range("A:B"), 2, False)) ,對應Excel中的VLookup公式
Function message_box(ByVal mess_code As String) As String
If IsError(Application.VLookup(mess_code, Sheet5.Range("A:B"), 2, False)) Then
message_box = "NOT FOUND Message"
Else
message_box = Application.VLookup(mess_code, Sheet5.Range("A:B"), 2, False)
End If
End Function