[HỎI] Về mảng trong VBA (1 người xem)

Liên hệ QC

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

harrybotboy

Thành viên mới
Tham gia
17/6/13
Bài viết
13
Được thích
4
Nghề nghiệp
Sinh viên
Em có xem một đoạn mã lập trình trong sách của anh Phan Tự Hướng, nhưng có một đoạn code em không hiểu là giá trị mang1 mang2 bắt đầu từ giá trị 0 hay giá trị 1. VD: em thử thì giá trị mang1(0) không có giá trị trả về, còn mang1(1) thì có giá trị trả về.

Mã:
Function noisuy1chieu(giatri As Single, mang1 As Range, mang2 As Range) As Single
    Dim i As Integer, sohang As Integer
    Dim a1 As Single, a2 As Single
    Dim b1 As Single, b2 As Single
    sohang = mang1.Rows.Count
    For i = 1 To sohang
        a1 = mang1(i - 1)
        a2 = mang1(i)
        b1 = mang2(i - 1)
        b2 = mang2(i)
        If mang1(i) >= giatri Then
            noisuy1chieu = Round((giatri - a1) * (b2 - b1) / (a2 - a1) + b1, 3)
            Exit For
        ElseIf mang1(i) >= a2 Then
            noisung1chieu = mang2(sohang)
        End If
    Next
End Function
 
Em có xem một đoạn mã lập trình trong sách của anh Phan Tự Hướng, nhưng có một đoạn code em không hiểu là giá trị mang1 mang2 bắt đầu từ giá trị 0 hay giá trị 1. VD: em thử thì giá trị mang1(0) không có giá trị trả về, còn mang1(1) thì có giá trị trả về.

Mã:
Function noisuy1chieu(giatri As Single, mang1 As Range, mang2 As Range) As Single
    Dim i As Integer, sohang As Integer
    Dim a1 As Single, a2 As Single
    Dim b1 As Single, b2 As Single
    sohang = mang1.Rows.Count
    For i = 1 To sohang
        a1 = mang1(i - 1)
        a2 = mang1(i)
        b1 = mang2(i - 1)
        b2 = mang2(i)
        If mang1(i) >= giatri Then
            noisuy1chieu = Round((giatri - a1) * (b2 - b1) / (a2 - a1) + b1, 3)
            Exit For
        ElseIf mang1(i) >= a2 Then
            noisung1chieu = mang2(sohang)
        End If
    Next
End Function
Theo mình hiểu thì mang1 và mang2 ở đây có kiểu là range thì luôn bắt đầu từ 1 bạn nhé
ví dụ:
Mã:
Sub test_mang()
dim arr
arr= worksheets("sheet1").range("A1:F56")
msgbox arr(1,1)
end sub
khi chạy đoạn code trên sẽ trả về thông báo của giá trị A1 của bảng tính sheet1
 
Upvote 0

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

Back
Top Bottom