Hỏi về tham chiếu đến range chạy theo biến (1 người xem)

Liên hệ QC

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

thealien

Thành viên mới
Tham gia
21/12/10
Bài viết
8
Được thích
0
Mình đang tìm hiểu về vba để ứng dụng, nhờ giúp đỡ vấn đề sau:
Tham chiếu đến range chạy theo biến i từ dòng trên i 100 đến dòng dưới i 100 tại cột B, giả sử i=101 thì tham chiếu đến range("B1:B201")
Mình thử Range("B"&i-100&":B"&I+100) nhưng không được
Nhờ giúp đỡ với
Mình cảm ơn
 
Thế bạn sửa chổ này một chút nửa xem thế nào Range("B" & (i-100) & ":B" & (I+100))
 
Upvote 0
Bài toán mình đang làm rất lằng nhằng khó nói
Đại để là căn cứ theo các ô ở cột B để nhặt tất cả các giá trị tại cột D mà cột B có cùng giá trị với ô gốc:
Cụ thể: Nếu lấy tại B1: tìm tất cả các giá trị là 1, trả về ô E1 tất cả các giá trị ô D tương ứng (có 2 ô bằng ô B1 là B2 và B3 nên kết quả là giá trị ô D1, D2, D3), LẶP LẠI CHO B2, B3,....
Mong các bạn chỉ giúp vấn đề trên, mình muốn rút gọn range ở trên vì giới hạn chỉ tìm xung quanh vị trí biến chạy 100 DÒNG trên và dưới thôi, nếu để chạy cả range là toàn bộ cột B thì sẽ rất lâu
 

File đính kèm

Upvote 0
ai hỗ trợ mình với, mới tập tành VBA mà gian nan quá
 
Upvote 0
Chưa xem file ở bài #4.
Mình thử Range("B"&i-100&":B"&I+100) nhưng không được
Bạn thêm khoảng trắng (nhấn phím spacebar) ở trước và sau ký tự "&" là được.
Thử đoạn sau xem:
PHP:
Sub select_range()
Dim i&: i = 101
Sheet1.Range("B" & i - 100 & ":B" & i + 100).Select
End Sub
 
Upvote 0
Đoạn code mình viết đây, nhưng bị lỗi
PHP:
Public Sub dc()
 Dim bien, kq, OK, i
For OK = 1 To 100
 i = Application.WorksheetFunction.VLookup(OK, Range("a1:b100"), 2, 0)
    For Each bien In Range("B" & OK - 5 & ":B" & OK + 5)
        If bien = i Then kq = kq & " " & Cells(bien.Row, 4)
       Next
 Cells(OK, 5) = Trim(kq)
 kq = ""
 Next OK
End Sub
 
Upvote 0
Bạn chạy thử macro này & rút ra kết luận từ kết quả đạt được:
PHP:
Public Sub DC()
 Dim fRw As Long, lRw As Long, J As Long
 Dim Cls As Range
 
 For Each Cls In Range([B1], [B1].End(xlDown))
    If Cls.Row <= 100 Then fRw = 1 Else fRw = Cls.Row - 100
    lRw = Cls.Row + 100
    For J = fRw To lRw Step 1
        If Cls.Value = Cells(J, "B").Value Then _
            [e65500].End(xlUp).Offset(1).Value = Cells(J, "D").Value
    Next J
 Next Cls
End Sub
 
Upvote 0
Đoạn code mình viết đây, nhưng bị lỗi
PHP:
Public Sub dc()
 Dim bien, kq, OK, i
For OK = 1 To 100
 i = Application.WorksheetFunction.VLookup(OK, Range("a1:b100"), 2, 0)
    For Each bien In Range("B" & OK - 5 & ":B" & OK + 5)
        If bien = i Then kq = kq & " " & Cells(bien.Row, 4)
       Next
 Cells(OK, 5) = Trim(kq)
 kq = ""
 Next OK
End Sub

Dùng hàm worksheetfunction, nếu vlookup khong tìm ra thì sẽ bị lỗi. Vì vậy phải có code bẫy lỗi.
 
Upvote 0
Web KT

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

Back
Top Bottom