Macro coppy công thức đến hàng cuối cùng mà ô bên cạnh có dữ liệu (1 người xem)

Người dùng đang xem chủ đề này

ThuyNguyenHN

Thành viên hoạt động
Tham gia
24/6/09
Bài viết
159
Được thích
12
Chào anh chị và các bạn GPE

Em có file excel Ví dụ trong file đính kèm (File thực tế rất nhiều dữ liệu, nhiều dòng): Em muốn tạo 1 nút Macro mà khi nhấn vào nút đó thì công thức =vlookup (hay 1 công thức nào đó) sẽ được coppy vào cột F sao cho công thức chỉ được coppy vào các hàng mà cột E tương ứng bên cạnh có dữ liệu (tức là công thức không bị coppy thừa xuống hàng 16, 17 .... vì dữ liệu bên cột E chỉ có đến hàng 15)

Em cảm ơn!
 

File đính kèm

Chào anh chị và các bạn GPE

Em có file excel Ví dụ trong file đính kèm (File thực tế rất nhiều dữ liệu, nhiều dòng): Em muốn tạo 1 nút Macro mà khi nhấn vào nút đó thì công thức =vlookup (hay 1 công thức nào đó) sẽ được coppy vào cột F sao cho công thức chỉ được coppy vào các hàng mà cột E tương ứng bên cạnh có dữ liệu (tức là công thức không bị coppy thừa xuống hàng 16, 17 .... vì dữ liệu bên cột E chỉ có đến hàng 15)

Em cảm ơn!

Đại khái có thể dùng như vầy:
PHP:
Public Sub GPE()
Dim Rng As Range, Cll As Range
Set Rng = Range("E5", Range("E5").End(xlDown)).Offset(, 1)
For Each Cll In Rng
    Cll.Value = "=Công thức của bạn"
Next Cll
Set Rng = Nothing
End Sub
 
bạn có thể dùng code sau
Mã:
Sub GPE1()
    Range("F5").AutoFill Destination:=Range("E5", Range("E5").End(xlDown)).Offset(, 1)
End Sub
hoặc
Sub GPE2()
    Range("F5").AutoFill Destination:=Range("E5", Range("E65000").End(xlUp)).Offset(, 1)
End Sub
 
Cảm ơn anh Ba Tê
Em đã làm được nhưng có vẻ có chỗ nào đó chưa ổn anh ạ
Đại khái có thể dùng như vầy:
PHP:
Public Sub GPE()
Dim Rng As Range, Cll As Range
Set Rng = Range("E5", Range("E5").End(xlDown)).Offset(, 1)
For Each Cll In Rng
    Cll.Value = "=Công thức của bạn"
Next Cll
Set Rng = Nothing
End Sub
 
Cảm ơn a HieuCD
Để em thử code anh xem sao ak
bạn có thể dùng code sau
Mã:
Sub GPE1()
    Range("F5").AutoFill Destination:=Range("E5", Range("E5").End(xlDown)).Offset(, 1)
End Sub
hoặc
Sub GPE2()
    Range("F5").AutoFill Destination:=Range("E5", Range("E65000").End(xlUp)).Offset(, 1)
End Sub
 
Nếu muốn trích data chỉ value từ từng cột tùy ý sang Sheet2 (như file em kèm) thì phải dùng code nào ạ?

Đại khái có thể dùng như vầy:
PHP:
Public Sub GPE()
Dim Rng As Range, Cll As Range
Set Rng = Range("E5", Range("E5").End(xlDown)).Offset(, 1)
For Each Cll In Rng
    Cll.Value = "=Công thức của bạn"
Next Cll
Set Rng = Nothing
End Sub
 
file đính kèm đây ạ.

Trong sheet2 là sheet sẽ có dữ liệu chỉ value được trích ra từ Sheet1
 

File đính kèm

file đính kèm đây ạ.

Trong sheet2 là sheet sẽ có dữ liệu chỉ value được trích ra từ Sheet1
Trích là sao, theo điều kiện nào? Hay là lấy tất cả các dòng?
Nếu bạn làm thủ công thì sao, Record Macro nó sẽ giống như vậy.
PHP:
Public Sub GPE()
Sheet1.Range("B5", Sheet1.Range("D5").End(xlDown)).Copy
        Sheet2.Range("B4").PasteSpecial (xlPasteValues)
Sheet1.Range("F5", Sheet1.Range("F5").End(xlDown)).Copy
        Sheet2.Range("E4").PasteSpecial (xlPasteValues)
Application.CutCopyMode = False
End Sub
 
Anh Ba Tê ơi: nếu muôn tạo 1 nút macro mà khi nhấn nút thì con chỏ chuột sẽ đứng ở ô cuối cùng có dữ liệu ở cột bên cạnh của bảng thì code thế nào ạ?

VD trong file em gửi: dữ liệu ở cột F từ ô F5:F20, muốn khi chạy macro thì chuột chọn vùng G5:G20 thì code thế nào ạ.
Hoặc sau chạy macro thì chuột nằm ở ô G20 (ô có dữ liệu cuối cùng của cột kế bên)
 
Anh Ba Tê ơi: nếu muôn tạo 1 nút macro mà khi nhấn nút thì con chỏ chuột sẽ đứng ở ô cuối cùng có dữ liệu ở cột bên cạnh của bảng thì code thế nào ạ?

VD trong file em gửi: dữ liệu ở cột F từ ô F5:F20, muốn khi chạy macro thì chuột chọn vùng G5:G20 thì code thế nào ạ.
Hoặc sau chạy macro thì chuột nằm ở ô G20 (ô có dữ liệu cuối cùng của cột kế bên)

Thêm 2 dòng này trên dòng End Sub bài #8, tuỳ chỉnh cho vừa ý.
PHP:
Sheet1.Activate
Range("F65536").End(xlUp).Offset(, 1).Select
 

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

Back
Top Bottom