Rút gọn macro có điều kiện

Liên hệ QC

trantuonganh2008

Thành viên thường trực
Tham gia
8/11/08
Bài viết
305
Được thích
53
Hi mọi người,
Mình có ghi đoạn macro bên dưới, nhờ các bạn rút gọn lại dùm mình nhé. Cám ơn mọi người!Du
Lưu ý: Dữ liệu ở [L] cách đều 3 dòng, VD: L12, L15, L18, L21..., L6154
Sub Macro3()
Range("L12").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L456").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L468").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L618").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L1356").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L1809").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L2556").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L4812").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L5715").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L6154").Select
End Sub
 
Hi mọi người,
Mình có ghi đoạn macro bên dưới, nhờ các bạn rút gọn lại dùm mình nhé. Cám ơn mọi người!Du
Lưu ý: Dữ liệu ở [L] cách đều 3 dòng, VD: L12, L15, L18, L21..., L6154
Sub Macro3()
Range("L12").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L456").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L468").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L618").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L1356").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L1809").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L2556").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L4812").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L5715").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L6154").Select
End Sub
Vầy đi
PHP:
Sub Macro3()
  Union([L12], [L456], [L468], [L618], [L1356], [L1809], [L2556], [L4812], [L5715], [L6154]).Value = "=RC[1]"
End Sub
 
Upvote 0
Hi mọi người,
Mình có ghi đoạn macro bên dưới, nhờ các bạn rút gọn lại dùm mình nhé. Cám ơn mọi người!Du
Lưu ý: Dữ liệu ở [L] cách đều 3 dòng, VD: L12, L15, L18, L21..., L6154
Sub Macro3()
Range("L12").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L456").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L468").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L618").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L1356").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L1809").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L2556").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L4812").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L5715").Select
ActiveCell.FormulaR1C1 = "=RC[1]"
Range("L6154").Select
End Sub
Bạn dùng cái này xem sao
Sub macro3()
Dim i As Long
For i = 12 To 6154 Step 3
Range("L" & i).Value = "=RC[1]"
Next
End Sub
 
Upvote 0
Vầy đi
PHP:
 Sub Macro3() Union([L12], [L456], [L468], [L618], [L1356], [L1809], [L2556], [L4812], [L5715], [L6154]).Value = "=RC[1]" End Sub
Cái của bác đúng nhưng sai ý mình, vì mình nói là liên tục cách 3 dòng từ L12 --> L6154 mà. Còn code của Minh Công mới đúng ý mình. Cám ơn 2 bác nhiều
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn dùng cái này xem sao Sub macro3() Dim i As Long For i = 12 To 6154 Step 3 Range("L" & i).Value = "=RC[1]" Next End Sub
Chào bạn, Cho mình hỏi xíu. Dòng nào tại cột M rỗng hoặc bằng 0 thì mình bỏ qua (tức là không cần những dữ liệu này), vậy làm cách nào?
 
Lần chỉnh sửa cuối:
Upvote 0
Chào bạn,
Cho mình hỏi xíu. Dòng nào tại cột M rỗng hoặc bằng 0 thì mình bỏ qua (tức là không cần những dữ liệu này), vậy làm cách nào?
- Nếu gõ bằng công thức thường, có phải bạn sẽ dùng cái này:
=IF(AND(gì gì đó = "", gì gì đó = 0),"",gì gì đó)
- Vậy thì cứ record macro như bạn đã làm xem code nó thể hiện công thức này thế nào rồi gán vào code
 
Upvote 0
Mình cũng chưa hiểu ý bác lắm. Căn cứ vào code của Minh Công, mình chỉ cần loại bớt ra những dòng nào rỗng hoặc bằng 0 tại [M]. Vì nếu nhập giá trị 0 thì hơi bị phiền phức và code chạy hơi chậm nữa.
 
Lần chỉnh sửa cuối:
Upvote 0
Mình cũng chưa hiểu ý bác lắm. Căn cứ vào code của Minh Công, mình chỉ cần loại bớt ra những dòng nào rỗng hoặc bằng 0 tại [M]. Vì nếu nhập giá trị 0 thì hơi bị phiền phức và code chạy hơi chậm nữa.
Tức Bạn sửa lại đoạn code trên như vầy nè:
PHP:
Sub macro3()
Dim i As Long
   For i = 12 To 6154 Step 3
      Range("L" & i).Value = "=IF(AND(RC[1]=0,RC[1]=""""),"""",RC[1])"
   Next
End Sub
 
Upvote 0
- Nếu gõ bằng công thức thường, có phải bạn sẽ dùng cái này: =IF(AND(gì gì đó = "", gì gì đó = 0),"",gì gì đó) - Vậy thì cứ record macro như bạn đã làm xem code nó thể hiện công thức này thế nào rồi gán vào code
Cho mình nói rõ hơn là: Nếu [M] = "" thì [L] cũng = "" luôn để khỏi phải có giá trị 0. Vì khi mình chạy code của MinhCong, khi [M] rỗng mình thấy [L] vẫn đưa vào giá trị 0.
 
Lần chỉnh sửa cuối:
Upvote 0
Tức Bạn sửa lại đoạn code trên như vầy nè:
PHP:
Sub macro3()
Dim i As Long
   For i = 12 To 6154 Step 3
      Range("L" & i).Value = "=IF(AND(RC[1]=0,RC[1]=""""),"""",RC[1])"
   Next
End Sub
Dùng thử code này theo ý NDU thử
PHP:
 Sub TheSo()
With Range("L15:L6154")
  .FormulaR1C1 = "=IF(MOD(ROW(),3)=0,RC1,0)"
End With
End Sub
 
Upvote 0
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom