返回列表 上一主題 發帖

[轉貼] VBA的寫作技巧與增進效能

請教版大
像我的程式想簡化
但裡面有要變的欄位
必須要用 ActiveSheet.Paste
才能動作
請問這樣要如何簡化
我用您的方式
修改我的程式為
    Sheets("北區IC表").Range("B2").Copy Sheets("統計").Range("B2")
    Sheets("統計").Range("E3:E22").Copy Sheets("北一美富").Range("B3")
但原本該變動的"E3:E22"數值就不變動了
請版大幫我看看問題所在
感謝您

我原本的巨集如下

Sub 北一美富()
' 北一美富 Macro
在 2012/7/5 錄製的巨集

    Sheets("北區IC表").Select
    Range("B2").Select
    Selection.Copy
    Sheets("統計").Select
    Range("B2").Select
    ActiveSheet.Paste
    Range("E3:E22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("北一美富").Select
    Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   

    Sheets("北區IC表").Select
    Range("B3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("統計").Select
    Range("B2").Select
    ActiveSheet.Paste
    Range("E3:E22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("北一美富").Select
    Range("C3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("北區IC表").Select
    Range("B4").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("統計").Select
    Range("B2").Select
    ActiveSheet.Paste
    Range("E3:E22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("北一美富").Select
    Range("D3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("北區IC表").Select
    Range("B5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("統計").Select
    Range("B2").Select
    ActiveSheet.Paste
    Range("E3:E22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("北一美富").Select
    Range("E3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("北區IC表").Select
    Range("B6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("統計").Select
    Range("B2").Select
    ActiveSheet.Paste
    Range("E3:E22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("北一美富").Select
    Range("F3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("北區IC表").Select
    Range("B7").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("統計").Select
    Range("B2").Select
    ActiveSheet.Paste
    Range("E3:E22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("北一美富").Select
    Range("G3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub

TOP

回復 1# Hsieh


請教版大
像我的程式想簡化
但裡面有要變的欄位
必須要用 ActiveSheet.Paste
才能動作
請問這樣要如何簡化
我用您的方式
修改我的程式為
    Sheets("北區IC表").Range("B2").Copy Sheets("統計").Range("B2")
    Sheets("統計").Range("E3:E22").Copy Sheets("北一美富").Range("B3")
但原本該變動的"E3:E22"數值就不變動了
請版大幫我看看問題所在
感謝您

我原本的巨集如下

Sub 北一美富()
' 北一美富 Macro
在 2012/7/5 錄製的巨集

    Sheets("北區IC表").Select
    Range("B2").Select
    Selection.Copy
    Sheets("統計").Select
    Range("B2").Select
    ActiveSheet.Paste
    Range("E3:E22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("北一美富").Select
    Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   

    Sheets("北區IC表").Select
    Range("B3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("統計").Select
    Range("B2").Select
    ActiveSheet.Paste
    Range("E3:E22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("北一美富").Select
    Range("C3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("北區IC表").Select
    Range("B4").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("統計").Select
    Range("B2").Select
    ActiveSheet.Paste
    Range("E3:E22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("北一美富").Select
    Range("D3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("北區IC表").Select
    Range("B5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("統計").Select
    Range("B2").Select
    ActiveSheet.Paste
    Range("E3:E22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("北一美富").Select
    Range("E3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("北區IC表").Select
    Range("B6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("統計").Select
    Range("B2").Select
    ActiveSheet.Paste
    Range("E3:E22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("北一美富").Select
    Range("F3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("北區IC表").Select
    Range("B7").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("統計").Select
    Range("B2").Select
    ActiveSheet.Paste
    Range("E3:E22").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("北一美富").Select
    Range("G3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

End Sub

TOP

        靜思自在 : 有智慧才能分辨善惡邪正;有謙虛才能建立美滿人生。
返回列表 上一主題