Nối chuỗi ký tự số dài !

Liên hệ QC

hopestar

Thành viên mới
Tham gia
5/6/09
Bài viết
2
Được thích
0
Mình có 1 dãy số hàng dọc như thế này muốn chuyển sang hàng ngang rồi thêm ký tự ";" để ngăn cách các số chuyển sang word thì làm thế nào các bác !
 

File đính kèm

  • Book1.xlsx
    11.7 KB · Đọc: 6
Mình có 1 dãy số hàng dọc như thế này muốn chuyển sang hàng ngang rồi thêm ký tự ";" để ngăn cách các số chuyển sang word thì làm thế nào các bác !
Phải dùng đến VBA.
Tham khảo:
[gpecode=vb]
Public Function NoiChuoi(Rng As Range) As String
Dim Cel As Range, Tmp As String
For Each Cel In Rng
If IsEmpty(Cel) Then
Tmp = Tmp
Else
Tmp = Tmp & "," & Cel
End If
Next Cel
If Len(Tmp) Then NoiChuoi = Right(Tmp, Len(Tmp) - 1)
End Function
[/gpecode]
Mở Marco để dùng hàm tự tạo NoiChuoi.
 

File đính kèm

  • Book1.xlsm
    17 KB · Đọc: 8
Phải dùng đến VBA.
Tham khảo:
Mã:
Public Function NoiChuoi(Rng As Range) As String
    Dim Cel As Range, Tmp As String
    For Each Cel In Rng
        [COLOR=#ff0000]If IsEmpty(Cel) Then
            Tmp = Tmp[/COLOR]
        Else
            Tmp = Tmp & "," & Cel
        End If
    Next Cel
    If Len(Tmp) Then NoiChuoi = Right(Tmp, Len(Tmp) - 1)
End Function
Mở Marco để dùng hàm tự tạo NoiChuoi.
Câu lệnh màu đỏ là câu rất... rất... tào lao
Ẹc... Ẹc...
Đã biết rằng: Nếu cell là rổng thì không làm gì, vậy If và Else làm quái gì cho nó thừa. Ta thay bằng câu Nếu cell không rổng thì làm gì đó có phải gọn không?
 
Lần chỉnh sửa cuối:
Mình có 1 dãy số hàng dọc như thế này muốn chuyển sang hàng ngang rồi thêm ký tự ";" để ngăn cách các số chuyển sang word thì làm thế nào các bác !
Của bạn đây, trước khi bấm nút "NỐI CHUỖI" thì dùng chuột chọn ô muốn đặt kết quả, ví dụ D1 hoặc D2 ...
Muốn copy sang Word thì chọn ô chứa kết quả(Ví dụ D1) nhấn nút copy sau đó mở Word nhấn nút Paste.

 

File đính kèm

  • noichuoi.xls
    43.5 KB · Đọc: 20
Của bạn đây, trước khi bấm nút "NỐI CHUỖI" thì dùng chuột chọn ô muốn đặt kết quả, ví dụ D1 hoặc D2 ...
Muốn copy sang Word thì chọn ô chứa kết quả(Ví dụ D1) nhấn nút copy sau đó mở Word nhấn nút Paste.


Code này cho kết quả dư 1 dấu ";" ở cuối chuỗi
 
Trông bài này quen quen. Hình như đã giải rồi?
Mã:
Function NoiChuoi1(rng As Range) As String
[COLOR=#008000]' hàm nối các ký tự trong một vùng (thuần dòng hoặc cột) thành một chuõi, cách bởi dấu ";"
[/COLOR]Dim dd As Integer
If (rng.Columns.Count = 1) Then[COLOR=#008000] ' vùng nối là cột[/COLOR]
NoiChuoi1 = Join(Application.Transpose(rng), ";")
ElseIf (rng.Rows.Count = 1) Then[COLOR=#008000] ' vùng nối là dòng[/COLOR]
NoiChuoi1 = Join(Application.Transpose(Application.Transpose(rng)), ";")
Else[COLOR=#008000] ' vùng nối không thuần là dòng hoặc cột[/COLOR]
MsgBox "vung phuc tap qua, khong noi duoc"
NoiChuoi1 = ""
End If
Do While InStr(NoiChuoi1, ";;")[COLOR=#008000] ' loại trường hợp có các ô trống[/COLOR]
NoiChuoi1 = Replace(NoiChuoi1, ";;", ";")
Loop
End Function
 
Web KT

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

Back
Top Bottom