VBA常用技巧1
在項(xiàng)目測(cè)試階段,經(jīng)常會(huì)要使用vba做些小工具,方便測(cè)試數(shù)據(jù)的導(dǎo)入導(dǎo)出。
下面是一些編寫程序時(shí)使用的小技巧:
1. 用循環(huán)往sheet里寫入多行數(shù)據(jù)
With Cells(Rows.Count, 1).End(xlUp).Offset(1)
.Value = 要寫入的值
.Resize(, 3).Borders.LineStyle = xlContinuous
End With
第一句是取第一列的行數(shù)(Excel2003是65536行),從下往上直到有輸入的那行,再取其下一行,便得到了第一個(gè)未輸入行的單元格。
另外一種方法:
With ThisWorkbook.Sheets(1)
r = .Range("A1").CurrentRegion.Rows.Count + 1
.Cells(r, 1).Value = x
.Cells(r, 2).Value = y
.Cells(r, 3).Value = z
End With
2. 第一列已有多行輸入,現(xiàn)在要在后面相應(yīng)的幾列中寫入數(shù)據(jù)
Set LArea = Range("A1").CurrentRegion
Application.ScreenUpdating = False
For i = 2 to LArea.Rows.Count
With Workbooks.Open(LArea.Cells(i, 1).Value)
LArea.Cells(i, 2).Value = xxx
LArea.Cells(i, 3).Value = yyy
.Close SaveChanges:= False
End With
Next i
Application.ScreenUpdating = True
第一句取得第一列所有輸入的行范圍;
假定從第二行開始寫入數(shù)據(jù);
假定第一列里放的是文件名,With用Workbooks打開每個(gè)文件,然后往相應(yīng)的第二列和第三列里寫入數(shù)據(jù),最后關(guān)閉打開的文件(不保存)。
3. 往Workbook里追加新的sheet
Worksheets.Add(After:=Sheets(Sheets.Count).Name = "表名")
.Range("A1").Value = Worksheets(1).Rows("1:3").Value
4. 用ADO讀取外部文件里的數(shù)據(jù)
Set oConn = CreateObject("ADODB.CONNECTION")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strExportDataFolder & ";" & _
"Extended Properties=""text;HDR=No;FMT=TabDelimited"""
Set oRS = CreateObject("ADODB.RECORDSET")
oRS.Open "Select * From " & strFileName, oConn, 3, 1, 1
.....讀入數(shù)據(jù)處理
oRS.Close
oConn.Close
使用這種方法讀取如csv這樣的文本文件,速度很快。但是,需要注意的是讀入的數(shù)據(jù)可能會(huì)改變?cè)瓉?lái)的格式。
比如,原來(lái)的格式是+00000000.001,讀進(jìn)來(lái)的數(shù)據(jù)可能會(huì)變成1。
posted on 2009-02-25 22:47 koradji 閱讀(860) 評(píng)論(1) 編輯 收藏 所屬分類: Excel VBA