各位專家,我想實作的功能是:每間隔2秒,對VBA所在作業簿一個作業表和另一個作業簿中一個作業表同時進行資料讀寫操作,一共進行三次這樣的回圈操作。
對于VBA所在作業簿的操作沒有問題,請問一下怎么操作另一個作業簿中的資料啊?我有個例子,請各位專家幫我看看,修改一下,主要是下面讀寫另一個作業簿的部分,我按照下面的代碼運行之后,另一個作業簿正常打開,但是沒有進行讀寫操作!
Private Sub CommandButton1_Click()
Dim n1 As Single
Dim m1 As Single
n1 = 14 '控制VBA所在作業簿行數,賦值行數為14,15,16
m1 = 14 '控制另一個作業簿行數,賦值行數為14,15,16
'實作功能:每兩秒鐘同時為VBA所在作業簿和另一個作業簿中的某一行資料賦值(例如賦值成和上一行資料一樣,下兩秒就是所在行的下一行),一共賦值3次-------------------
'VBA所在作業簿的活動作業表名是Sheet21,另一個作業簿的活動作業表名是Sheet25-------------------------------------------
For i = 1 To 3
Application.Wait (Now + TimeValue("00:00:02")) '設定時間間隔
'開始為VBA所在作業簿的Sheet21賦值-----------------------------------------------------------------------------------
For j = 2 To 10 '給第n1行的第2列到第10列賦值
Sheet21.Cells(n1, j).Value = Sheet21.Cells(n1 - 1, j).Value
Next j
n1 = n1 + 1
'開始為另一個作業簿中的Sheet25做同樣的賦值(以下就是出問題的地方)-----------------------------------------------------------------------------------
Dim wb As Excel.Workbook
Set wb = Workbooks.Open("C:\Users\Administrator\Desktop\報表.xls")
wb.Activate
For q = 2 To 37
wb.Sheets(25).Cells(m1, q).Value = wb.Sheets(25).Cells(m1 - 1, q).Value
Next q
m1 = m1 + 1
wb.Save
wb.Close
Next i
End Sub
uj5u.com熱心網友回復:
Set wb = Workbooks.Open("C:\Users\Administrator\Desktop\報表.xls")
Debug.Print wb.Sheets(25).Name '<-
wb.Activate手工打開《報表.xls》:
確認上面輸出的作業頁是否是預期要修改的頁;
確認13行有資料;
手工填入14~16行,確認保存不出錯;
關閉后等2秒再次打開,確認資料沒丟。
uj5u.com熱心網友回復:
你的“操作另一個作業簿”的代碼,看起來沒有什么問題啊,這操作“目的”是把:報表.xls中Sheets(25)第13行第2到37列的單元格內容,
復制到下面的第14到16行對應的單元格中吧。
你的代碼運行時,它有沒有什么錯誤提示?
你在主貼中說到“沒有進行讀寫操作”,你確認第13行不是“空行”嗎?
另外:
控制“行號”的變數n1、m1,為啥不用Long或Integer型別,而用的Single?
其它幾個變數i、j、q,為啥不進行“定義”?
uj5u.com熱心網友回復:
小心駛得萬年船。需要寫日志到檔案輔助除錯。
uj5u.com熱心網友回復:
今晚繼續看,找資源轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/33350.html
標籤:VBA
上一篇:請問各路大神,在PPT VB 編輯器上怎么實作這樣的倒計時
下一篇:excel批量匯入excel
