Paste vào những ô trống những dữ liệu lấy từ hàng trên

Liên hệ QC

honhatduy

Thành viên mới
Tham gia
30/5/11
Bài viết
5
Được thích
0
Các anh chị giúp em vấn đề này nhé, viết code sao cho những hàng trống phía dưới được paste từ dữ liệu của hàng trên, liên tục cho đến hết nhé.
Thanks các anh chị nhiều
 

File đính kèm

Các anh chị giúp em vấn đề này nhé, viết code sao cho những hàng trống phía dưới được paste từ dữ liệu của hàng trên, liên tục cho đến hết nhé.
Thanks các anh chị nhiều

Bạn xài thử code này xem sao

PHP:
Sub copy()
Dim ketqua, i
ketqua = Range([b6], [b65536].End(3)).Resize(, 3)
For i = 1 To UBound(ketqua)
   If ketqua(i, 3) = "" Then
      ketqua(i, 3) = ketqua(i - 1, 3)
   End If
Next
[b6].Resize(i - 1, 3) = ketqua
End Sub
 
Upvote 0
Bạn xài thử code này xem sao

PHP:
Sub copy()
Dim ketqua, i
ketqua = Range([b6], [b65536].End(3)).Resize(, 3)
For i = 1 To UBound(ketqua)
   If ketqua(i, 3) = "" Then
      ketqua(i, 3) = ketqua(i - 1, 3)
   End If
Next
[b6].Resize(i - 1, 3) = ketqua
End Sub

Vầy thử xem sao:
PHP:
Sub Test()
  With Range([B6], [b65536].End(xlUp)).Offset(, 2)
    .SpecialCells(4).Value = "=R[-1]C"
    .Value = .Value
  End With
End Sub
Ẹc.. Ẹc...
 
Upvote 0
Vầy thử xem sao:
PHP:
Sub Test()
  With Range([B6], [b65536].End(xlUp)).Offset(, 2)
    .SpecialCells(4).Value = "=R[-1]C"
    .Value = .Value
  End With
End Sub
Ẹc.. Ẹc...

Nhờ bạn giải thích giúp mình nghĩa của 02 dòng lệnh này với? Mình đang tập tè học VBA nên không hiểu.
PHP:
    .SpecialCells(4).Value = "=R[-1]C"
    .Value = .Value
 
Upvote 0
Nhờ bạn giải thích giúp mình nghĩa của 02 dòng lệnh này với? Mình đang tập tè học VBA nên không hiểu.
PHP:
    .SpecialCells(4).Value = "=R[-1]C"
    .Value = .Value
1. SpecialCells(4) là những ô trống trong vùng đang xét (ở đây là vùng Range([B6], [B65536].End(xlUp)).Offset(, 2))
2. Công thức "=R[-1]C" được hiểu là = giá trị ô cùng cột, trước 1 hàng, tức là lấy giá trị của ô ngay bên trên nó. Ví dụ, đặt tại ô B3 thì công thức này sẽ tương đương công thức "=B2"
3. Câu lệnh .Value = .Value tương đương với thao tác PasteValues.
Như vậy, 2 câu lệnh này có nghĩa là: Đối với những ô trống trong vùng B6:D..., sẽ thực hiện 2 công việc: Đặt công thức lấy giá trị của ô ngay trên nó, sau đó sẽ PasteValue vào vị trí cũ.
 
Upvote 0
Các anh chị giúp em vấn đề này nhé, viết code sao cho những hàng trống phía dưới được paste từ dữ liệu của hàng trên, liên tục cho đến hết nhé.
Thanks các anh chị nhiều


Đối với những bạn chưa biết gì về Macro thì dùng cách này để điền vào những ô còn trống mà không cần dùng Code (hướng dẫn theo File của bạn honhatduy), thực hiện như sau:
Chọn vùng từ D7 đến dòng cuối cùng và nhấn phím Ctrl+G, làm xuất hiện cửa sổ Go To, nhấn nút Special làm xuất hiện cửa sổ Go To Special bạn click chọn Blanks và nhấn OK, tiếp theo vào khung Formula bar gõ =D6 xong nhấn phím Ctrl+Enter và xem kết quả.
 
Upvote 0
Bạn xài thử code này xem sao

PHP:
Sub copy()
Dim ketqua, i
ketqua = Range([b6], [b65536].End(3)).Resize(, 3)
For i = 1 To UBound(ketqua)
   If ketqua(i, 3) = "" Then
      ketqua(i, 3) = ketqua(i - 1, 3)
   End If
Next
[b6].Resize(i - 1, 3) = ketqua
End Sub
thầy có thể viết giúp em đoạn code nguyên lí như này nhưng chỉ hoạt động trong vùng mà đã được chọn (bôi đen) bất kì được không ạ?
 
Upvote 0
1583325251709.png
e copy 1 sheet trong excel thì báo như vậy, mong mọi người chỉ cho e cách khắc phục lỗi nầy với ạ
 
Upvote 0
thầy có thể viết giúp em đoạn code nguyên lí như này nhưng chỉ hoạt động trong vùng mà đã được chọn (bôi đen) bất kì được không ạ?
Giống file đính kèm. Em chỉ muốn auto fill trong vùng e bôi đỏ thôi ạ. Thầy có thể viết để khi e select vùng nào thì sẽ fill ở vùng đấy ko ạ.
Em cảm ơn ạ.
 

File đính kèm

Upvote 0
Bạn thử con macro này:
PHP:
Sub CopyDownValue()
 Dim Col As Integer, Rw As Long, Cot As Integer, Rws As Long
 Dim Cls As Range, Rng As Range, Rg0 As Range
 
 Set Rng = Selection
 Col = Rng.Columns.Count:               Rw = Rng.Rows.Count
 For Cot = 1 To Col
    Set Rg0 = Rng(Cot).Resize(Rw)
    For Each Cls In Rg0
        If Cls.Value = "" Then Cls.Value = Cls.Offset(-1).Value
    Next Cls
 Next Cot
End Sub
 
Upvote 0
Bạn thử con macro này:
PHP:
Sub CopyDownValue()
Dim Col As Integer, Rw As Long, Cot As Integer, Rws As Long
Dim Cls As Range, Rng As Range, Rg0 As Range

Set Rng = Selection
Col = Rng.Columns.Count:               Rw = Rng.Rows.Count
For Cot = 1 To Col
    Set Rg0 = Rng(Cot).Resize(Rw)
    For Each Cls In Rg0
        If Cls.Value = "" Then Cls.Value = Cls.Offset(-1).Value
    Next Cls
Next Cot
End Sub
Được rồi ạ.
Em cảm ơn nhé ♥
 
Upvote 0
Web KT

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

Back
Top Bottom