返回列表 上一主題 發帖

執行vba出現應用程式定義錯誤

回復 1# eric093


Sheets("貼這").Range(h:h).Clear  




Sheets("貼這").Range("h:h").Clear

  1. 'Set rng(1) = Sheets("貼這").Range("A2", Range("A" & Rows.Count).End(xlUp))
  2. '程式碼在 "貼這"工作表模組上可行
  3. '如不在"貼這"工作表模組上,且 ActiveSheet 不是"貼這"工作表 ,會出錯
  4. '不在"貼這"工作表模組上建議修改
  5. With Sheets("貼這")
  6.     .Range("h:h").Clear
  7.     Set rng(1) = .Range("A2", .Range("A" & .Rows.Count).End(xlUp))
  8. End With
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2014-10-15 05:36 編輯

回復 5# eric093


   
而我在這檔案中新增一個模組,單獨執行時其速度龜速的慢跑不了

試試看
  1. Option Explicit
  2. Sub test()
  3.     Dim Rng As Range
  4.     'Application.screenupdate = False 'screenupdate ????
  5.     Application.ScreenUpdating = False
  6.     With Sheets("貼這")
  7.         .Range("h:h").Clear
  8.         'Set rng(1) = .Range("A2", .Range("A" & .Rows.Count).End(xlUp))
  9.         Set Rng = .Range("A2", .Range("A" & .Rows.Count).End(xlUp)).Offset(, 7)
  10.         With Rng
  11.             .Formula = "=if((d2-c2) * 86400>0,(d2-c2) * 86400,0)" '給公式
  12.             .Value = .Value    '將範圍的公式轉為值
  13.         End With
  14.     End With
  15.     Application.ScreenUpdating = True
  16. End Sub
複製代碼
ps:由於原檔案有大量的客戶資料及員工資料(無法將資料用其它代號替代,因為資料每欄資料都是客戶及員工資料),所以不方便上傳,請見諒!

維護個資(公司的機密)可修改資料,上傳修改的部份即可
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 話多不如話少,話少不如話好。
返回列表 上一主題