返回列表 上一主題 發帖

[發問] 請問此段巨集如何簡化或加快速度??

[發問] 請問此段巨集如何簡化或加快速度??

本帖最後由 t8899 於 2013-9-6 06:44 編輯

Sub zzzzz()
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayStatusBar = False
ActiveSheet.DisplayPageBreaks = False

With Sheets("Sheet6")

     Range("D16").Select
    Selection.Copy
    Range("b65536").End(xlUp).Offset(1).Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False

           Range("C16").Select
    Selection.Copy
    Range("O65536").End(xlUp).Offset(1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
  
    Range("C18").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("P65536").End(xlUp).Offset(1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

             Range("B16").Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("Q65536").End(xlUp).Offset(1).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
end with
end sub
---------------------------------------------------------------------------------------------
另外 此兩個可否放在with 裡面
1.執行另一個巨集
2.Sheets("Sheet3").Range("Z2:Z111").Value = Sheets("Sheet3").Range("C2:C111").Value (是否非同一個物件?)

本帖最後由 t8899 於 2013-9-6 08:42 編輯
回復  t8899
此兩個可否放在with 裡面,試試看吧!
GBKEE 發表於 2013-9-6 07:15

選擇性貼上有10個參數
您的寫法只有貼上"值" 的部份
一般用的是
1值
2值與數字格式
3格式
4全部
這4個個別"語法"是?(套在你寫的裡面)
Option Explicit 檢查,如果未指定 On 或 Off,則預設值為 On ,應該不用掛?
另外 下面兩個可否放在with 裡面
1.執行另一個巨集
2.Sheets("Sheet3").Range("Z2:Z111").Value = Sheets("Sheet3").Range("C2:C111").Value (是否非同一個物件?)

TOP

回復  t8899
另外 下面兩個可否放在with 裡面   試試就知道(你試過嗎?)
GBKEE 發表於 2013-9-6 09:25


我試過下面這一段放在With Sheets("Sheet1")裡,是不會出現錯誤,但會造成程式跑的不對(會跑到非指定的工作表做動作)
run clear ======>應該是這個出問題
For i = 350 To 21 Step -1
  If IsError(Cells(i, "h")) Then Run "clear": Exit For
next
所以答案是不行

TOP

回復  t8899 IsError(Cells(i, "h"))  是 With Sheets("Sheet1") 裡的Cells(i, "h") 嗎?,
不是要指明工作表 ...
GBKEE 發表於 2013-9-6 10:23


IsError(Cells(i, "h"))  是 With Sheets("Sheet1") 裡的Cells(i, "h") 嗎?  

是的!
Run "clear"  這是 VBA的關鍵字 Clear 方法,最好換個字串  

謝謝!已改為 ACLEAR

有無必要用WITH ? 我用的結果感覺不出有比較快

TOP

本帖最後由 t8899 於 2013-9-6 12:33 編輯
回復  t8899
是With Sheets("Sheet1") 裡的Cells(i, "h") 就可用With. (快不快??? 不知你的想法)
GBKEE 發表於 2013-9-6 10:55


  Range("F10").Formula = .Formula           '公式
  Range("F11").FormulaLocal = .FormulaLocal  '數字格式
試的結果,這兩個都是公式????
這下面兩個的語法?
1.copy 值與數字格式
2.copy 格式

Sub Macro1()
With Range("D2")
Range("B65536").End(xlUp).Offset(1) = ????
End With
End Sub

TOP

        靜思自在 : 【蒙蔽的自由】人常在什麼都可以自由自在的時候,卻被這種隨心所欲的自由蒙蔽,虛擲時光而毫無覺知。
返回列表 上一主題