Chào các anh chị trên diễn đàn
Mong anh chị giúp đỡ viết thủ tục nối cột Họ, tên thành cột Họ và tên đồng thời khi ghép nối xong sẽ xóa luôn 2 cột Họ, tên trong tất cả các sheet trừ sheet1
Cám ơn anh chị rất nhiều
Sub JoinText()
On Error Resume Next
Dim wsSheet As Worksheet
Dim rNg As Range
For Each wsSheet In Worksheets
For Each rNg In wsSheet.Range("D3:D100")
If rNg.Offset(0, -2).Value <> Empty And rNg.Offset(0, -1).Value <> Empty Then
rNg.Value = rNg.Offset(0, -2).Value & " " & rNg.Offset(0, -1).Value
End If
Next rNg
Next wsSheet
End Sub
Cám ơn bạn phuyen89Code của mình chưa tốt, mong mọi người góp ý thêm!
PHP:Sub JoinText() On Error Resume Next Dim wsSheet As Worksheet Dim rNg As Range For Each wsSheet In Worksheets For Each rNg In wsSheet.Range("D3:D100") If rNg.Offset(0, -2).Value <> Empty And rNg.Offset(0, -1).Value <> Empty Then rNg.Value = rNg.Offset(0, -2).Value & " " & rNg.Offset(0, -1).Value End If Next rNg Next wsSheet End Sub
cái này thì cần gì code kiết, bạn gõ công thức xong rồi copy dán value sau đó xóa 2 cột B, C là ok màChào các anh chị trên diễn đàn
Mong anh chị giúp đỡ viết thủ tục nối cột Họ, tên thành cột Họ và tên đồng thời khi ghép nối xong sẽ xóa luôn 2 cột Họ, tên trong tất cả các sheet trừ sheet1
Cám ơn anh chị rất nhiều
Chào các anh chị trên diễn đàn
Mong anh chị giúp đỡ viết thủ tục nối cột Họ, tên thành cột Họ và tên đồng thời khi ghép nối xong sẽ xóa luôn 2 cột Họ, tên trong tất cả các sheet trừ sheet1
Cám ơn anh chị rất nhiều
Sub abc()
Dim sh As Worksheet, tam(), i&
For Each sh In Worksheets
If sh.Name <> "Sheet1" Then
tam = sh.Range("B2", sh.[C65536].End(3)).Value
For i = 1 To UBound(tam)
tam(i, 1) = tam(i, 1) & Space(1) & tam(i, 2)
tam(i, 2) = ""
Next
sh.[B2].Resize(i - 1, 2) = tam
End If
Next
End Sub
Nếu Không Space(1) thì là Nguyen VanAPHP:Sub abc() Dim sh As Worksheet, tam(), i& For Each sh In Worksheets If sh.Name <> "Sheet1" Then tam = sh.Range("B2", sh.[C65536].End(3)).Value For i = 1 To UBound(tam) tam(i, 1) = tam(i, 1) & Space(1) & tam(i, 2) tam(i, 2) = "" Next sh.[B2].Resize(i - 1, 2) = tam End If Next End Sub
Rõ ràng là vậy rồi. Tại viết vậy cho nguy hiểm chút chứ thường ai cũng dùng " " cho gọnNếu Không Space(1) thì là Nguyen VanA
Còn nếu Space(1) thì là Nguyen Van A
Không biết Em hiểu vậy có trúng ko Anh
Tại viết vậy cho nguy hiểm chút
là trả về chuỗi number Một khoãng trắng hay chèn một khoãng trắng vào chuỗiCái vụ "nguy hiểm" thì tôi không tin đâu nha
Đố ai biết tại sao Quang Hải dùng Space(1) đấy
(biết sẽ có thưởng. Ẹc... Ẹc...)
Sub Test()
Dim MyString
MyString = Space(1)
MyString = "Nguyen Van" & Space(1) & "A"
MsgBox MyString
MsgBox Space(1)
End Sub
Sub Test2()
Dim MyString
MyString = Space(10)
MyString = "Nguyen Van" & Space(10) & "A"
MsgBox MyString
MsgBox Space(10)
End Sub
Cái vụ "nguy hiểm" thì tôi không tin đâu nha
Đố ai biết tại sao Quang Hải dùng Space(1) đấy
(biết sẽ có thưởng. Ẹc... Ẹc...)
Mình nghĩ nếu không sử dụng Space(1) thì phải sử dụng cách khác nếu không Nguyễn Văn A thành nguyễn VănA như vậy là sai tiếng việtTheo anh thì Quang Hải dùng Space(1) là để mà mắt anh em thôi, chứ thật ra không dùng nó cũng được mà.
Sub Test3()
Dim MyString
MyString = "A"
MyString = "Nguyen Van" & "A"
MsgBox MyString
End Sub
Mình nghĩ nếu không sử dụng Space(1) thì phải sử dụng cách khác nếu không Nguyễn Văn A thành nguyễn VănA như vậy là sai tiếng việt
thử code sau là biết
PHP:Sub Test3() Dim MyString MyString = "A" MyString = "Nguyen Van" & "A" MsgBox MyString End Sub
cách anh chỉ " " em biết rồi ....em trả lời bài #11 có sai không AnhÝ tôi muốn hỏi tại sao Hải không dùng " " mà lại dùng Space(1)
???
Cũng có nguyên nhân của nó đấy
(theo tôi biết là vậy)
Bài 14 là thuộc dạng tẩu hoả chứ không có sai đúng nữa rồi.cách anh chỉ " " em biết rồi ....em trả lời bài #11 có sai không Anh
Em hiểu rồi thanks AnhBài 14 là thuộc dạng tẩu hoả chứ không có sai đúng nữa rồi.
Mình nghĩ nếu không sử dụng Space(1) thì phải sử dụng cách khác nếu không Nguyễn Văn A thành nguyễn VănA như vậy là sai tiếng việt
thử code sau là biết
PHP:Sub Test3() Dim MyString MyString = "A" MyString = "Nguyen Van" & "A" MsgBox MyString End Sub
Bạn thử Test 2 code mình viết xem thế nào rồi bạn sẽ biết về Yes và No Space(1)Thay vì dùng như vầy.
tam(i, 1) = tam(i, 1) & Space(1) & tam(i, 2)
Ndu đặt vấn đề bỏ Space(1) được không, vì nó có nguyên nhân. Khi nhập liệu thì không ai để khoảng trắng phía trước chữ đầu và phía sau chữ cuối.
Ndu đặt vấn đề như vậy thì tôi hiểu không cần dùng nó cũng được, chỉ thêm khoảng trắng vào trong code là nhanh và tiện lợi nhất.
Vì vậy chỉ thêm khoảng trắng trước số 1, 2 như tôi nêu ở trên là ra kết quả.
Tôi giải thích theo sự hiểu biết của tôi, các bạn cho ý kiến thêm.
Sub Noi_Ten()
Dim nguon(), kq(), i, j, k
nguon = Range("A2:B100").Value
ReDim kq(1 To UBound(nguon, 1), 1 To UBound(nguon, 2))
For i = 1 To UBound(nguon, 1)
k = k + 1
For j = 1 To UBound(nguon, 2)
kq(k, 1) = nguon(i, 1) & nguon(i, 2)
Next
Next
[D2].Resize(k, UBound(nguon, 2)) = kq
End Sub
Sub Noi_Ten_Space()
Dim nguon(), kq(), i, j, k
nguon = Range("A2:B100").Value
ReDim kq(1 To UBound(nguon, 1), 1 To UBound(nguon, 2))
For i = 1 To UBound(nguon, 1)
k = k + 1
For j = 1 To UBound(nguon, 2)
kq(k, 1) = nguon(i, 1) & Space(1) & nguon(i, 2)
Next
Next
[F2].Resize(k, UBound(nguon, 2)) = kq
End Sub