alohn
Thành viên chính thức


- Tham gia
- 21/12/07
- Bài viết
- 59
- Được thích
- 13
Mình đang nghiên cứu về ParamArray. Có mấy vấn đề chưa hiểu, mong các bạn giải thích giúp. Mình lấy ví dụ nối chuỗi sau nguồn trên diến đàn:
Function Dconcatenate(ParamArray cel() As Variant) As String
For n = LBound(cel) To UBound(cel)
For i = 1 To cel(n).Rows.Count
For j = 1 To cel(n).Columns.Count
Ketqua = Ketqua & "," & cel(n)(i, j)
Next
Next
Ketquachung = Ketquachung & "," & Ketqua
Next
Ketquachung = Right(Ketquachung, Len(Ketquachung) - 2)
Dconcatenate = Ketquachung
End Function
Khi sử dụng func trong execl giả sử chọn vùng từ A1:I1 mình muốn hỏi:
1. Là vùng A1:I1 này có được gán luôn cho mảng cel() không ( cel = Range("A1:I1").Value ), hay chỉ là gán kich thước của vùng vào mảng thôi. Vì khi mình Debug vẫn thấy Lbound(Cel) và Ubound(Cel) vẫn trả về giá trị 0.
2. Cách viết Cel(n)(i,j) có nghĩa là: lấy giá trị có tọa độ i, j của phần tử thứ n trong mảng cel ?
Mong các cao thủ chỉ giúp. Thank so much.
Function Dconcatenate(ParamArray cel() As Variant) As String
For n = LBound(cel) To UBound(cel)
For i = 1 To cel(n).Rows.Count
For j = 1 To cel(n).Columns.Count
Ketqua = Ketqua & "," & cel(n)(i, j)
Next
Next
Ketquachung = Ketquachung & "," & Ketqua
Next
Ketquachung = Right(Ketquachung, Len(Ketquachung) - 2)
Dconcatenate = Ketquachung
End Function
Khi sử dụng func trong execl giả sử chọn vùng từ A1:I1 mình muốn hỏi:
1. Là vùng A1:I1 này có được gán luôn cho mảng cel() không ( cel = Range("A1:I1").Value ), hay chỉ là gán kich thước của vùng vào mảng thôi. Vì khi mình Debug vẫn thấy Lbound(Cel) và Ubound(Cel) vẫn trả về giá trị 0.
2. Cách viết Cel(n)(i,j) có nghĩa là: lấy giá trị có tọa độ i, j của phần tử thứ n trong mảng cel ?
Mong các cao thủ chỉ giúp. Thank so much.