1. 程式人生 > >常用的VBA函式及語句

常用的VBA函式及語句

清除行內容

   Rows("2:2").Select
    Selection.ClearContents
 

貼上到另一個表中有字元的下一行或貼上到最後一行字元的下一行:

該行的行號為: Sheets("sheet1").Range("A65536").End(xlUp).Row + 1

得到最後一行 : ActiveSheet.UsedRange. Item(ActiveSheet.UsedRange.Count).row

判斷一個單元表是否存在

 dim ws as worksheet
on error resume next
set ws = worksheets("sheet1")
if err then msgbox " sheet1工作表不存在"
on error goto 0

---------------------------------------

判斷一個sheet表是否存在,如果存在則刪除, 備份一下.

    Sub copyORGFCST() '
    Dim ws As Worksheet
    On Error Resume Next
    Set ws = Worksheets("ORGFCST_2")
    If  Err Then
        Sheets("ORGFCST").Select
        Sheets("ORGFCST").Copy After:=Sheets("ORGFCST")
        ActiveSheet.Name = "ORGFCST_2"
        On Error GoTo 0
    Else
        Sheets("ORGFCST_2").Delete
        Sheets("ORGFCST").Select
        Sheets("ORGFCST").Copy After:=Sheets("ORGFCST")
        ActiveSheet.Name = "ORGFCST_2"
    End If
End Sub

---------------------

Sub copyORGFCST() '
    Dim ws As Worksheet
    On Error Resume Next
    Set ws = Worksheets("ORGFCST_2")
    If Not Err Then
        Application.DisplayAlerts = False
       Sheets("ORGFCST_2").Delete
        Sheets("ORGFCST").Select
        Sheets("ORGFCST").Copy After:=Sheets("ORGFCST")
        ActiveSheet.Name = "ORGFCST_2"
    
    End If
    Application.DisplayAlerts = True
End Sub

------------------------------------------------------------------------

Sub Macro1()

Dim i, j As Long
Dim dt As String
dt = "2011-12-26"
i = InStr(StrReverse(dt), "-")
Debug.Print (i)

j = Len(dt) - i
dt = Mid(dt, 1, j)

End Sub

結果為 2011-12

Sub test()
Dim i, j As Long
Dim dt, dtY, dtM As String
dt = "2011-12-26"

dtM = Month(dt)
dtY = Year(dt)

dt = dtY & "-" & dtM


End Sub
結果為 2011-12

string 類的字元

Trim(string) 去年string左右兩端的空白

Len(string) 計算string長度

left(string,x) 取string左段x個字元組成的字串.

Right(string, x ) 取string 右段 x個字元組成的字串.

可使用InStr函式返回一字串在另一字串中的位置,因此,也可以使用該函式確定一個字串中是否包含有另一個字串。其語法為:
InStr([Start,]string1,string2[,compare])
其中,引數Start為可選引數,設定查詢的起點,如果省略,則從第一個字元的位置開始查詢,當指定了引數Compare時,則要指定此引數。引數string1為被查詢的字串,引數string2為要查詢的字串,這兩個引數都是必需的。

instr( "2011-11-26", "-")

反向字串
StrReverse函式返回與指定字串順序相反的字串,其語法為:
StrReverse(expression)
其中,引數expression是一個字串,應用StrReverse函式後將返回與該字串順序相反的字串。如果expression是一個長度為零的字串(“”),則返回一個長度為零的字串;如果expression為Null,則產生一個錯誤。

Mid函式

Mid(string, start[,length])

Mid 函式的語法具有下面的命名引數

部分 說明
string 必要引數。字串表示式,從中返回字元。如果 string 包含Null,將返回Null
start 必要引數。為 Longstring 中被取出部分的字元位置。如果start超過string的字元數,Mid 返回零長度字串 ("")
length 可選引數;為 Variant (Long)。要返回的字元數如果省略或length超過文字的字元數(包括start處的字元),將返回字串中從start到尾端的所有字元。

說明

欲知 string 的字元數,可用 Len 函式。

注意 MidB 函式作用於字串中包含的位元組資料,如同在雙位元組字符集(DBCS)語言中一樣。因此其引數指定的是位元組數,而不是字元數。對於使用MidB的示例程式碼,請參閱示例主題中的第二個示例。

日期型函式

日期與時間關鍵字總結

請參閱


Year("日期") 返回日期的年份

Month("日期") 返回日期的月份

Day("日期") 返回日期的某日

Hour("日期") 返回日期的某時

Minute("日期") 返回日期的某分

Second("日期") 返回日期的某秒

Time 系統當前的時間