VBA Paste dữ liệu vào bảng

Liên hệ QC

dailame9x

Thành viên mới
Tham gia
18/7/19
Bài viết
11
Được thích
3
Nhờ các bác giúp e với . Em muốn copy giá trị của từng cell ở cột B vào bảng dữ liệu dựa vào địa chỉ ở cột A . Có Inputbox để chọn vùng Range từ A đến B. sau khi kết thúc có hiện số lượng cell đã paste thành công . Em cảm ơn !
1614228868967.png
 

File đính kèm

  • Paste dl.xlsm
    20.4 KB · Đọc: 17
Nhờ các bác giúp e với . Em muốn copy giá trị của từng cell ở cột B vào bảng dữ liệu dựa vào địa chỉ ở cột A . Có Inputbox để chọn vùng Range từ A đến B. sau khi kết thúc có hiện số lượng cell đã paste thành công . Em cảm ơn !
Thấy I1 nó lặp lại nhiều lần thế mà số liệu khác nhau thì lấy cái nào
 
Upvote 0
Em lấy ví dụ thôi ạ . Nhưng mà em làm đc rồi .
 
Upvote 0
Biết thêm được hàm ADDRESS(ROW(), COLUMN(),4)
Cảm ơn các bạn.
 
Upvote 0
Em cảm ơn anh, em đang tò mò xem code của bạn chủ đề bài vì đăng ở mục Lập trình anh ạ.
Tôi không nghĩ là thớt có thuật toán gì đặc biệt đâu.
Chỉ là đọc mảng đầu vào, chuyển qua mảng đầu ra thôi.
Điểm khó nhất là tìm cách hiệu quả nhất để xác định giới hạn của mảng đầu ra. Nhưng nếu lười thì làm mò cũng chẳng chết ai.
 
Upvote 0
Nhờ các bác giúp e với . Em muốn copy giá trị của từng cell ở cột B vào bảng dữ liệu dựa vào địa chỉ ở cột A . Có Inputbox để chọn vùng Range từ A đến B. sau khi kết thúc có hiện số lượng cell đã paste thành công . Em cảm ơn !
View attachment 254517
Chỉ vầy thôi:
Mã:
Sub PasteValue()
    Dim rng As Range
    For Each rng In Range("A2:A27")
        Range(rng.Value).Value = rng.Offset(, 1).Value
    Next
End Sub
 
Upvote 0
Thuật toán tạm như vầy:

- dùng hàm Min, Max cho cột A để biết bên range kết quả bắt đầu bằng cột nào và kết thúc cột nào. Đổi nó thành cot1 và cot2
- đọc A:B vào mảng a
- dim mảng b(1 To 100000, cot1 To cot2)
- đọc cột 1 mảng a, dịch cái địa chỉ thành số dòng và cột. Chép trị bên cột 2 vào đúng vị trí ở bảng b.
- - trong lúc dịch địa chỉ, nhớ ghi lại cái số dòng lớn nhất ( if dongMx < dongHienTai Then dongMx = dongHienTai )
- cells(1, cot1).Resize(dongMax, cot2 - cot1 +1) = b
- ghi cái tiêu đề vào dòng 1. Mớt mét mẫu mã gì đó tuỳ thích.
 
Upvote 0
Web KT
Back
Top Bottom