
呵呵,把數組法改一改,速度又大大提高。
Sub CutPaste() ‘把多行的數據轉換成一行,注意,這里可不是“轉置”,這個(gè)采用數組法
Application.ScreenUpdating = False
t = Timer
Dim rng As Range, I%, K%, iCol%, L%, Arr() As String
Set rng = Selection
I = rng.Row
iCol = rng.Column
K = rng.Rows.Count - 1
ReDim Arr(K * 3 + 2)
For L = 0 To K
For w = 0 To 2
Arr(L * 3 + w) = rng(L + 1, w + 1)
Next
Next
Range(Cells(I, iCol + 4), Cells(I, K * 3 + iCol + 6)) = Arr
Application.ScreenUpdating = True
MsgBox Timer - t
End Sub

Sub test()
Dim i As String
i = [b3]
[f3] = i
End Sub
當在 B3 單元格中輸入一個(gè)文本數字,例如 21.10
或者設置好文本格式,在輸入數字??傊?,一定要把B列的格式設置為“文本”
然后運行該程序,F3 單元格得到的是“數值”型的數字,顯示為 21.1
注意:已經(jīng)把 變量 i 定義為 “字符串”數據類(lèi)型,還是這樣。但是如果把程序改成:
Sub test2()
‘Dim i As String
[g3] = [b3]
End Sub
直接把B2 的值賦給單元格 G3,卻又能成為 文本型 數字。
大家知道是什么原因嗎?

查找一個(gè)字符串是否都是字母并且最后一個(gè)字符是否是“E
Sub T()
Dim UseInput As String
Dim myReg As Object
UseInput = VBA.LCase(InputBox("輸入的字符必須都是字母并且最后一個(gè)字符是“e”或者“E”", "請輸入字符"))
‘或者是使用忽略大小寫(xiě)參數為真,可去除VBA.Lcase() myReg.IgnoreCase = True
Set myReg = CreateObject("Vbscript.RegExp")
myReg.Global = True
myReg.Pattern = "^[a-z]*e$"
If myReg.Test(UseInput) Then
MsgBox "你輸入的字符符合要求"
Else
MsgBox "輸入的字符必須都是字母并且最后一個(gè)字符是“e”或者“E”"
End If
Set myReg = Nothing
End Sub




Like 作用于漢字查找的表示方法
For j = 1 To Len(.Cells(i, 4))
If Mid(.Cells(i, 4), j, 1) Like "[含,肉,松,水,果,奶,油,芝,麻]" Then k = k & Mid(.Cells(i, 4), j, 1)
Next
Like 用于窗體的模糊查詢(xún)表示方法
If .Cells(i, 1) Like UserForm5.TextBox1 & "*" And .Cells(i, 2) Like "*" & UserForm5.TextBox2 & "*" And .Cells(i, 3) Like UserForm5.ComboBox1 & "*" Then
聯(lián)系客服