Board logo

標題: 請問迴圈問題 [打印本頁]

作者: gglan9    時間: 2011-8-13 10:58     標題: 請問迴圈問題

本帖最後由 gglan9 於 2011-8-14 04:55 編輯

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
請問我程式碼裡的錯誤要如何才能讓D1的值去重複讀取A欄的值往下  
例如: A1到A1000
作者: oobird    時間: 2011-8-13 12:18

Sub yy()
For Each c In [a:a].SpecialCells(2)
[d1] = c
Next
End Sub
作者: gglan9    時間: 2011-8-13 12:40

謝謝oobird  
但我現在還有一個問題 A模組還是無法執行
請問如何執行A模組
作者: GBKEE    時間: 2011-8-13 14:10

回復 3# gglan9
Application.Run Macro:= "sheelt1.A"   使用原本sheelt1裡的巨集名稱A
Application.Run Macro:= "A"    一般模組的巨集名稱A
作者: gglan9    時間: 2011-8-13 21:56

謝謝兩位大大的回覆
但我現在又有一個問題了
程式碼下
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?儲存格
可用時間設定讓他去延長等待時間嗎?
謝謝
作者: oobird    時間: 2011-8-13 22:35

例如延10秒:Application.OnTime Now + TimeSerial(0, 0, 10),"Dosomething"
作者: gglan9    時間: 2011-8-14 00:58

本帖最後由 gglan9 於 2011-8-14 02:02 編輯

我試過
Application.OnTime Now + TimeSerial(0, 0, 10), "Dosomething"   '延長等待時間10秒
會顥示無法執行巨集 Excel 會無法關閉 必需強制關閉
謝謝oobird
作者: gglan9    時間: 2011-8-14 04:35

本帖最後由 gglan9 於 2011-8-14 06:10 編輯

試過  
Application.OnTime Now + TimeSerial(0, 0, 10), "Dosomething"   '延長等待時間10秒
如果巨集是在活頁簿裡會顥示 無法執行巨集 Excel 會無法關閉 必需強制關閉
======================================================================
而單獨寫成一個巨集可以執行

試過在 迴圈裡讀取此巨集 但D1裡資料會停在A1儲存格  不用強制關閉excel
Application.Run Macro:= "A" 也沒有動作
也不會繼續往下讀取A欄裡的A2,A3,A4.............到A?儲存格
=================================================================
巨集裡的
  1. Sub Time()
  2.   Application.OnTime Now + TimeSerial(0, 0, 10), " yy"
  3. End Sub
複製代碼
=================================================================
迴圈裡的
  1. Sub yy()
  2.    For Each c In [A:A].SpecialCells(2)   
  3.           [D1] = c
  4.           If c = "" Then Exit For
  5.                 Application.Run Macro:= "Time"
  6.      Next
  7.                 Application.Run Macro:= "A"
  8. End Sub
複製代碼
請指教謝謝
作者: oobird    時間: 2011-8-14 10:53

  1. Sub yy()
  2.     For Each c In [A:A].SpecialCells(2)
  3.         [D1] = c
  4.         Application.Run Macro:="A"
  5.         t = Timer
  6.         Do
  7.             DoEvents
  8.         Loop Until Timer - t = 2
  9.     Next
  10. End Sub
  11. Sub A()
  12. For i = 1 To 1000
  13. [e1] = i
  14. Next
  15. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)