adua29
Real-life Girls Super Сasual Dating
- Tham gia
- 29/4/08
- Bài viết
- 156
- Được thích
- 111
- Giới tính
- Nam
- Nghề nghiệp
- Health
Em có macro tính tổng như sau:
Sub TIHTONG()
'
' TIHTONG Macro
' Macro recorded 14/03/2010 by Smart
'
Range("L21").Select
Application.CutCopyMode = False
Selection.Copy
Range("H4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F5060").Select
Application.CutCopyMode = False
Selection.Copy
Range("M21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("H7").Select
Application.CutCopyMode = False
Selection.Copy
Range("N21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L22").Select
Application.CutCopyMode = False
Selection.Copy
Range("H4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F5060").Select
Application.CutCopyMode = False
Selection.Copy
Range("M22").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("H7").Select
Application.CutCopyMode = False
Selection.Copy
Range("N22").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
..............................................
End Sub
Mục đích là:
Lấy lần lượt từng giá trị từ vùng $L21....$L70 dán vào ô $H$4 (ô nhập)
Sau mỗi lần nhập giá trị vào ô H4 thì thực hiện:
Sao chép giá trị trong ô H7 vào $M21....$M70 tương ứng
Sao chép giá trị trong ô F5060 vào $N21....$N70 tương ứng
Em đã làm được macro cho tất cả các giá trị trong vùng cần tính như trên tuy nhiên nó có nhược điểm là:
- Số lượng ô có giá trị lớn hơn không trong vùng $L21....$L70 luôn thay đổi biến động và có giá trị tăng không theo quy luật. (Các ô có giá trị lớn hơn 0 là liên tục từ L21)
- Macro thì cứ chạy từ 21 cho đến 70 (max) trong khi đó những giá trị = 0 nó vẫn tính và cho ra kết quả #N/A.
- Do số lượng tính toán lớn nên macro chạy rất chậm
Đề nghị giúp đỡ là:
Em chỉ muốn macro chạy cho đến hết giá trị lớn hơn 0 thì tự dừng lại.
Cho em hỏi có thể dùng các lệnh điều kiện IF then, For ... do...next trong macro này được không?
Nếu được nhờ các anh sửa chữa giùm hoặc tạo mới
Sub TIHTONG()
'
' TIHTONG Macro
' Macro recorded 14/03/2010 by Smart
'
Range("L21").Select
Application.CutCopyMode = False
Selection.Copy
Range("H4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F5060").Select
Application.CutCopyMode = False
Selection.Copy
Range("M21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("H7").Select
Application.CutCopyMode = False
Selection.Copy
Range("N21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("L22").Select
Application.CutCopyMode = False
Selection.Copy
Range("H4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("F5060").Select
Application.CutCopyMode = False
Selection.Copy
Range("M22").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("H7").Select
Application.CutCopyMode = False
Selection.Copy
Range("N22").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
..............................................
End Sub
Mục đích là:
Lấy lần lượt từng giá trị từ vùng $L21....$L70 dán vào ô $H$4 (ô nhập)
Sau mỗi lần nhập giá trị vào ô H4 thì thực hiện:
Sao chép giá trị trong ô H7 vào $M21....$M70 tương ứng
Sao chép giá trị trong ô F5060 vào $N21....$N70 tương ứng
Em đã làm được macro cho tất cả các giá trị trong vùng cần tính như trên tuy nhiên nó có nhược điểm là:
- Số lượng ô có giá trị lớn hơn không trong vùng $L21....$L70 luôn thay đổi biến động và có giá trị tăng không theo quy luật. (Các ô có giá trị lớn hơn 0 là liên tục từ L21)
- Macro thì cứ chạy từ 21 cho đến 70 (max) trong khi đó những giá trị = 0 nó vẫn tính và cho ra kết quả #N/A.
- Do số lượng tính toán lớn nên macro chạy rất chậm
Đề nghị giúp đỡ là:
Em chỉ muốn macro chạy cho đến hết giá trị lớn hơn 0 thì tự dừng lại.
Cho em hỏi có thể dùng các lệnh điều kiện IF then, For ... do...next trong macro này được không?
Nếu được nhờ các anh sửa chữa giùm hoặc tạo mới