發現以下程式碼有錯。
要如何才能讓D1的值去重複讀取A欄的值往下 ?
例如: A1到A1000
------------------
Sub 迴圈()
'
' 迴圈 Macro
For Each k In Sheets("sheelt1").Range("a:a") '迴圈要連續處理處理sheelt1 A欄的儲存格
Range("D1").Select =k .Value
Application.Run Macro:= "A" '使用原本sheelt1裡的模組A
Next
End Sub
-------------------
可 更改為如下程式碼:-
Sub yy()
For Each c In [a:a].SpecialCells(2)
[d1] = c
Next
End Sub
-----------------
問:
還有一個問題 A模組還是無法執行,請問如何執行A模組?
-----------------
答:
Application.Run Macro:= "sheelt1.A" 使用原本sheelt1裡的巨集名稱A
Application.Run Macro:= "A" 一般模組的巨集名稱A
-----------------
現在又有一個問題了,程式碼如下:
Sub yy()
For Each c In [A:A].SpecialCells(2)
[D1] = c
Application.c Now + TimeValue("00:00:30")
Next
Application.Run Macro:= "A"
End Sub
D1儲存格因連接到其它的工作表單為動態更新外部資料IQY
從A1讀取儲存格時因會出現一個重複迴圈而沒有停駐使查詢沒有傳回資料
請問如何從A1到D1時停駐一段時間後再去執行A2,A3,A4.............到A?儲存格
可用時間設定讓他去延長等待時間嗎?
----------------
答:
例如延10秒:Application.OnTime Now + TimeSerial(0, 0, 10),"Dosomething"
---------------
我試過
Application.OnTime Now + TimeSerial(0, 0, 10), "Dosomething" '延長等待時間10秒
會顯示無法執行巨集 Excel 會無法關閉 必需強制關閉
而單獨寫成一個巨集可以執行
試過在 迴圈裡讀取此巨集 但D1裡資料會停在A1儲存格 不用強制關閉excel
Application.Run Macro:= "A" 也沒有動作
也不會繼續往下讀取A欄裡的A2,A3,A4.............到A?儲存格
=================================================================
巨集裡的
- Sub Time()
- Application.OnTime Now + TimeSerial(0, 0, 10), " yy"
- End Sub
迴圈裡的
- Sub yy()
- For Each c In [A:A].SpecialCells(2)
- [D1] = c
- If c = "" Then Exit For
- Application.Run Macro:= "Time"
- Next
- Application.Run Macro:= "A"
- End Sub
----------------------------------
試一下以下更改了的程式碼:
Sub yy()
For Each c In [A:A].SpecialCells(2)
[D1] = c
Application.Run Macro:="A"
t = Timer
Do
DoEvents
Loop Until Timer - t = 2
Next
End Sub
Sub A()
For i = 1 To 1000
[e1] = i
Next
End Sub
------------------------
沒有留言:
張貼留言