Odpovědět 執行多重VBA程式時的問題

  • 2012年3月19日 下午 02:10
     
     

    本人因工作關係需要執行多重Excel用VBA(內含copy&paste)來跑多個程式(每次約花幾小時),但當中發現程式執行時不能同時運作Word(間歇性停頓)及不能進行copy&paste等文字工作,須知window只能同時單一處理copy&paste,但想請問會否有其他方法解決以上問題?謝謝,待復。

所有回覆

  • 2012年3月21日 下午 02:31
     
     已答覆

    修改你的程式碼,不要使用 Copy / Paste

    相關討論:

    http://social.msdn.microsoft.com/Search/zh-TW/?query=805%20Select%20%E9%81%BF%E5%85%8D&refinement=112&ac=8


    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

  • 2012年3月27日 上午 07:33
     
     

    不好意思,看完你建議的連結卻找不到可解決的方法。如果Excel VBA程式內有copy&paste是否必定不能與其他程式同時執行?現附上我的程式碼望有熱心人可給我建議及改進....謝謝待復

    Sub Run_test_1()
    'Optimization x2 (total:585) 最佳化(雙參數)

    Range("S2") = Range("parameter_1")
    Range("T2") = Range("parameter_2")

    Dim cell As Variant
    Set mark = Range("area_mark").Find("x")

    Range("start_mark").Select

    If mark Is Nothing Then
    Else
        r = Application.Match("x", Range("area_mark"), 0)
        ActiveCell(r, 1).Select
    End If

    Set cell = ActiveCell()
    I = 1
    Do While cell(m + 1, 2) <> "end"
        n = I
        m = I
        cell(n, 1) = "x"
        cell(n, 1).Offset(-1, 0).Select
        Selection.ClearContents
        Range("area2").Select
        Selection.Table RowInput:=Range("T2"), ColumnInput:=Range("S2")
        Calculate
        Range("area2a").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("parameter_1").Select
        Selection.Copy
        cell(n, 6).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("parameter_2").Select
        Selection.Copy
        cell(n, 7).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("W2:X2").Select
        Selection.Copy
        cell(n, 12).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("result").Select
        Selection.Copy
        cell(n, 14).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    I = I + 1
    Loop

    ActiveWorkbook.save

    MsgBox "完成"

    End Sub

  • 2012年3月27日 下午 02:39
     
     

    系統剪貼簿只有一個,不能多,不能少。

    你用到 ActiveXXX 及 Select ,所以目前 Worksheets 必須在前景。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

  • 2012年3月29日 下午 01:55
     
     

    我經常執行多重excel內的以上VBA程式,但當它們同時執行到copy&paste時便會自動協調而不受扞擾,為何執行其他程式卻出現衝撞?內碼的copy&paste指令可否有其他更好或建議代替呢?請指教....

  • 2012年3月29日 下午 04:39
     
     

    用迴圈去填滿你的資料,就不用 Copy / Paste

    targetSheet.Cells(x1, y1) = sourceSheet.Cells(x2, y2)

    運氣好或是 Single Process 而非 MultiProcess 。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

  • 2012年3月31日 下午 07:52
     
     
    因我是要每次copy&paste運算列表後的參數代入公式得出結果值,所以不太可能用迴圈復製, anyway感謝你的協助...
  • 2012年4月1日 下午 03:43
     
     
    純粹 copy / paste 的,通常可以用樣板來處理,比如說一個公式設好的空白檔案,再把必要資料填入。

    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。