返回列表 上一主題 發帖

[發問] 請教一下跑迴圈如何使用其他XLS

[發問] 請教一下跑迴圈如何使用其他XLS

如題:我寫了一個簡單的VBA但是發現只要開始跑迴圈時,就不能開其他XLS檔與自己檔的其他sheets
Private Sub CommandButton1_Click()
Do While Range("B2") = 1
Range("A1") = Range("A2")
DoEvents
Loop
End Sub

請教各位先進如何在跑迴圈時還可以用其他的EXCEL檔與編輯自己其他的活頁
YOYO

可以呀,只是作其他操作時程式會停止運作。回來必須再按一次。

TOP

學海無涯_不恥下問

TOP

謝謝版主提供的連結,但我還是剛來的"小學生"所以附件不能下載
YOYO

TOP

回復 1# yanto913
指明是哪一個WorkBooks("xxx.xls").Sheets("xxx") 試試看
Private Sub CommandButton1_Click()
Do While WorkBooks("xxx.xls").Sheets("xxx").Range("B2") = 1
WorkBooks("xxx.xls").Sheets("xxx").Range("A1") = WorkBooks("xxx.xls").Sheets("xxx").Range("A2")
DoEvents
Loop
End Sub

TOP

GBKEE版大
我試過了,可是仍然不能開啟其他EXCEL檔耶!
YOYO

TOP

我試過可以的。
開本活頁簿的 a.gif 其他工作表或另開新檔都沒問題。

TOP

我將程式修改成如下,結果程式變成不能跑了,而且在未修改前可以跑兩個程式,但開啟其他EXCEL檔後程式會變成跑到另一個新EXCEL做運算(ex,跑到book2.xls中做計數)
Option Explicit
Declare Function SetTimer _
    Lib "user32" ( _
        ByVal hWnd As Long, _
        ByVal nIDEvent As Long, _
        ByVal uElapse As Long, _
        ByVal lpTimerFunc As Long) _
As Long
Declare Function KillTimer _
    Lib "user32" ( _
        ByVal hWnd As Long, _
        ByVal nIDEvent As Long) _
As Long
'EXCEL視窗的handle, id設為1, 每 0.2秒執行1次Asub程序
Sub StartAsub()
    SetTimer Application.hWnd, 1, 200, AddressOf Asub
End Sub
Sub StopAsub()
    KillTimer Application.hWnd, 1
End Sub
Sub StartBsub()
    SetTimer Application.hWnd, 2, 500, AddressOf Bsub
End Sub
Sub StopBsub()
    KillTimer Application.hWnd, 2
End Sub
Sub Asub()
With ActiveSheet.Workbooks("book1.xls").Sheets("sheet1").Range("a1")
    .Value = .Value + 1
End With
End Sub
Sub Bsub()
With ActiveSheet.Workbooks("book1.xls").Sheets("sheet1").Range("b1")
    .Value = .Value + 1
End With
End Sub
YOYO

TOP

回復 8# yanto913
With ActiveSheet.Workbooks("book1.xls").Sheets("sheet1").Range("b1")
語法錯誤  請去掉 ActiveSheet.

TOP

版大們,去掉 ActiveSheet.,可以開但是會發生
1.當Sheet1跳到Sheet2沒問題,Sheet2再跳到Sheet3就會錯誤了
2.當要編輯儲存格時也會發生錯誤(A1仍在計數中)
YOYO

TOP

        靜思自在 : 對父母要知恩,感恩、報恩。
返回列表 上一主題