技術(shù) 點
- 技術(shù)
- 點
- V幣
- 點
- 積分
- 6332
|
3#

樓主 |
發(fā)表于 2012-8-22 14:12:12
|
只看該作者
本帖最后由 Benjamin_luk 于 2012-8-22 14:12 編輯
但是出現(xiàn)問題了,
在用TARGETR進行賦值,提示錯誤"需要對象"
我想是因為EXCEL已關(guān)閉的原因, 那就將TARGETR轉(zhuǎn)到另一個變量,測試成功!
速度比TransferSpreadsheet要快得多了, 最后代碼如下:
紅色為新增加的變量
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As New Excel.Worksheet
Dim rs As Recordset
Dim I As Double, J As Integer, n As Integer
Dim TargetR, stime, DataK
If Dir(filstr) <> "" Then
stime = Timer
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(filstr)
Set xlSheet = xlBook.Worksheets(1)
CurrentDb.Execute "Delete * from [1 庫存(MB52)]"
Set rs = CurrentDb.OpenRecordset("1 庫存(MB52)")
'MsgBox rs.RecordCount
xlApp.ScreenUpdating = False
With xlSheet
I = .Range("A1").End(xlDown).Row
Set TargetR = .Range("A1:I" & I)
xlApp.ScreenUpdating = True
End With
DataK = TargetR
xlApp.Workbooks.Close
xlApp.Quit
Set xlApp = Nothing
For J = 2 To I
rs.AddNew
rs.Fields(1) = DataK(J, 1)
rs.Fields(2) = DataK(J, 2)
rs.Fields(3) = DataK(J, 3)
rs.Fields(4) = DataK(J, 4)
rs.Fields(5) = DataK(J, 5)
rs.Fields(6) = DataK(J, 6)
rs.Fields(7) = DataK(J, 7)
rs.Fields(8) = DataK(J, 8)
rs.Update
Next
MsgBox "成功導(dǎo)入庫存資料" & Round(Timer - stime, 0), vbInformation
Else
MsgBox "庫存文件不存在", vbCritical, "請檢查庫存文件路徑"
End If
Set rs = Nothing |
|