nobita1985
Thành viên mới
- Tham gia
- 15/4/12
- Bài viết
- 1
- Được thích
- 0
Em viết một hàm trong VBA, Hàm này tham chiếu đến một vùng dữ liệu trong bảng tính Ecxel, và duyệt dữ liệu trong từng cell nếu giá trị cell bằng 0 thì bỏ qua, nếu giá trị của cell khác không thì lấy giá trị trong ô cell đó thêm vào dấu cộng nối với giá trị ô cell khác 0 kê tiếp. Kết quả trả về là dẫy giá trị nối với nhau qua dấu "+" ví dụ:
ô tham chiếu {1,0,2,3,0,4} giá trị trả về "1+2+3+4". Khi chay thử báo lỗi #value. Mong các anh chị giúp đỡ em lập hàm này.
Code:
Option Explicit
Option Base 1
Public Function TraVeText(Dulieu As Range) As String
Dim Text() As String
Dim Sophantu As Integer
Sophantu = 0
Dim i As Integer
i = 0
For Each Dulieu In Dulieu.Cells
If Dulieu.Value <> 0 Then
Sophantu = Sophantu + 1
End If
Next Dulieu ' Da kiem tra ok
ReDim Text(Sophantu) As String ' Da kiem tra ok gan dc mang.
i = 1
For Each Dulieu In Dulieu.Cells
If Dulieu.Value <> 0 Then
Text(i) = Dulieu.Value
i = i + 1
End If
Next Dulieu
TraVeText = Join(Text(), "+")
End Function
ô tham chiếu {1,0,2,3,0,4} giá trị trả về "1+2+3+4". Khi chay thử báo lỗi #value. Mong các anh chị giúp đỡ em lập hàm này.
Code:
Option Explicit
Option Base 1
Public Function TraVeText(Dulieu As Range) As String
Dim Text() As String
Dim Sophantu As Integer
Sophantu = 0
Dim i As Integer
i = 0
For Each Dulieu In Dulieu.Cells
If Dulieu.Value <> 0 Then
Sophantu = Sophantu + 1
End If
Next Dulieu ' Da kiem tra ok
ReDim Text(Sophantu) As String ' Da kiem tra ok gan dc mang.
i = 1
For Each Dulieu In Dulieu.Cells
If Dulieu.Value <> 0 Then
Text(i) = Dulieu.Value
i = i + 1
End If
Next Dulieu
TraVeText = Join(Text(), "+")
End Function