ghép nối dữ liệu từ nhiều sheet (1 người xem)

  • Thread starter Thread starter new2007
  • Ngày gửi Ngày gửi
Liên hệ QC

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

new2007

Thành viên mới
Tham gia
7/5/07
Bài viết
2
Được thích
2
Xin hỏi có cách nào ghép nối dữ liệu từ nhiều sheet có tên khác nhau vào trong 1 sheet tổng hợp như ví dụ trong file book1 này không ?
Chân thành cảm ơn.
 

File đính kè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
 

File đính kè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

Code 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
 
Code 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ám ơn bạn phuyen89
trong code bạn viết thiếu phần xóa cột b,c sau khi ghép nối.

 
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
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
PHP:
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
 
PHP:
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 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
 
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...)
là trả về chuỗi number Một khoãng trắng hay chèn một khoãng trắng vào chuỗi
không biết em trả lời bài #8 + với bài này trúng ko nữa
Thử code 1 là một khoãng trắng
PHP:
Sub Test()    
   Dim MyString 
   MyString = Space(1)    
   MyString = "Nguyen Van" & Space(1) & "A"
   MsgBox MyString   
   MsgBox Space(1)
End Sub

Thử code 2 là 10 khoãng trắng
PHP:
Sub Test2()  
    Dim MyString    
    MyString = Space(10)    
    MyString = "Nguyen Van" & Space(10) & "A"   
    MsgBox MyString    
    MsgBox Space(10)
End Sub
 
Lần chỉnh sửa cuối:
Chào mọi người
cho mình hỏi thêm code Insert một cột (cột c chẳng hạn) vào tất cả các sheet trừ sheet1
Cám ơn mọi người
 
Lần chỉnh sửa cuối:
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...)

Theo 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à.
 
Theo 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à.
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
 
Lần chỉnh sửa cuố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

Ý 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)
 
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


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.
 
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.
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)
No Space(1)

PHP:
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

Yes Space(1)

PHP:
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
 

File đính kèm

Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom