tuan_anhbm
Thành viên thường trực
- Tham gia
- 16/7/09
- Bài viết
- 253
- Được thích
- 1,605
Chào các cư dân GPE & các cao thủ VBA!
Tôi có 1 file dự toán xây dựng bằng Excel, trong đó có sử dụng Code (VBA) để thực hiện 1 công việc: “Link khối lượng từ bảng khối lượng (BKL) sang bảng phân tích vật tư (PTVT)”.
Mình có gửi file kèm theo để anh em kiểm tra cho tiện.
Nội dung:
Sub LinkKL()
'Noi dung: Link kh.luong tu bang KL qua bang PTVT
Application.ScreenUpdating = False
Dim m As Long, n As Long
m = 7
For n = 7 To Sheets("PTVT").[C65000].End(xlUp).Row
If Sheets("PTVT").Range("A" & n) <> "" Then
If Sheets("BKL").Range("E" & m) = "" Then m = m + 1
If Sheets("BKL").Range("E" & m) <> "" Then
Sheets("PTVT").Range("E" & n) = "=BKL!R" & m & "C5"
End If
m = m + 1
End If
Next
Application.ScreenUpdating = True
End Sub
Sau khi thử nghiệm cho kết quả:
- Nếu trong bảng kh.lượng (BKL) có <=1 dòng diễn giải thì KL bên bảng PTVT cho kết quả đúng.
- Nếu trong bảng kh.lượng có >= 2 dòng diễn giải (ví dụ: nếu dòng 8, 9, 10... cũng là dòng diễn giải) thì KL bên bảng PTVT sẽ bị sai.
Vậy nhờ anh em kiểm tra cái Sub trên xem có lỗi gì nhé.
(dòng diễn giải là dòng không có MHDG và không có KL. VD: dòng 7 - BKL đang là dòng diễn giải)
Ghi chú:
1- Trong file gốc có nhiềt Sheet nhưng đã cắt bớt 1 số Sheet cho gọn, chỉ còn 2 Sheet: BKL và PTVT, và cũng có nhiều module VBA nhưng cũng cắt bớt, chỉ trích đoạn từng vấn đề chưa ổn.
2- Yêu cầu là kết quả sau khi chạy Code trong bảng PTVT phải ở dạng link, VD: ở ô E7 của bảng PTVT sẽ có công thức: "=BKL!E..." v.v... để khi thay đổi dữ liệu trong bảng BKL thì sẽ tự thay đổi trong bảng PTVT mà không cần phải chạy lại.
Nhờ anh em trong diễn đàn kiểm tra và Edit cho cái Sub này, cảm ơn.
(xin anh em down lại file đã chuyển font Unicode)
------------
Tuấn Anh.
Tôi có 1 file dự toán xây dựng bằng Excel, trong đó có sử dụng Code (VBA) để thực hiện 1 công việc: “Link khối lượng từ bảng khối lượng (BKL) sang bảng phân tích vật tư (PTVT)”.
Mình có gửi file kèm theo để anh em kiểm tra cho tiện.
Nội dung:
Sub LinkKL()
'Noi dung: Link kh.luong tu bang KL qua bang PTVT
Application.ScreenUpdating = False
Dim m As Long, n As Long
m = 7
For n = 7 To Sheets("PTVT").[C65000].End(xlUp).Row
If Sheets("PTVT").Range("A" & n) <> "" Then
If Sheets("BKL").Range("E" & m) = "" Then m = m + 1
If Sheets("BKL").Range("E" & m) <> "" Then
Sheets("PTVT").Range("E" & n) = "=BKL!R" & m & "C5"
End If
m = m + 1
End If
Next
Application.ScreenUpdating = True
End Sub
Sau khi thử nghiệm cho kết quả:
- Nếu trong bảng kh.lượng (BKL) có <=1 dòng diễn giải thì KL bên bảng PTVT cho kết quả đúng.
- Nếu trong bảng kh.lượng có >= 2 dòng diễn giải (ví dụ: nếu dòng 8, 9, 10... cũng là dòng diễn giải) thì KL bên bảng PTVT sẽ bị sai.
Vậy nhờ anh em kiểm tra cái Sub trên xem có lỗi gì nhé.
(dòng diễn giải là dòng không có MHDG và không có KL. VD: dòng 7 - BKL đang là dòng diễn giải)
Ghi chú:
1- Trong file gốc có nhiềt Sheet nhưng đã cắt bớt 1 số Sheet cho gọn, chỉ còn 2 Sheet: BKL và PTVT, và cũng có nhiều module VBA nhưng cũng cắt bớt, chỉ trích đoạn từng vấn đề chưa ổn.
2- Yêu cầu là kết quả sau khi chạy Code trong bảng PTVT phải ở dạng link, VD: ở ô E7 của bảng PTVT sẽ có công thức: "=BKL!E..." v.v... để khi thay đổi dữ liệu trong bảng BKL thì sẽ tự thay đổi trong bảng PTVT mà không cần phải chạy lại.
Nhờ anh em trong diễn đàn kiểm tra và Edit cho cái Sub này, cảm ơn.
(xin anh em down lại file đã chuyển font Unicode)
------------
Tuấn Anh.
Lần chỉnh sửa cuối: