Dùng VBA chuyển dữ liệu vào textbox (1 người xem)

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

Thuyanhanoi

Thành viên thường trực
Tham gia
15/10/12
Bài viết
304
Được thích
154
Nghề nghiệp
Nhân viên
- Em đang tập tành viết code để lọc dữ liệu đơn giản như sau:
Mã:
Public Sub CHUYEN_VAO_TEXTBOX()Dim Ma As String, Ten As String, Gtinh As String, Ngay As Date, TEXTBOX5 As Object, TEXTBOX6 As Object
Dim Nsinh As String, DToc As String, TGiao As String, Trdo As String, Hokhau As String, TEXTBOX7 As Object
Dim sArr(), I As Long, TEXTBOX1 As Object, TEXTBOX2 As Object, TEXTBOX3 As Object, TEXTBOX4 As Object
On Error Resume Next
Ma = Sheets("VAO_KHUNG").[AF2].Value
With Sheets("Danh_Sach")
    sArr = .Range(.[A6], .[A65000].End(xlUp)).Resize(, 31).Value
End With
    For I = 1 To UBound(sArr, 1)
        If sArr(I, 2) = Ma Then
            Ten = sArr(I, 3) & " " & sArr(I, 4)
            Ngay = sArr(I, 5)
            Nsinh = sArr(I, 6)
            Gtinh = sArr(I, 7)
            DToc = sArr(I, 8)
            TGiao = sArr(I, 9)
            Trdo = sArr(I, 10)
            Hokhau = sArr(I, 13)
            Exit For
        End If
    Next I
With Sheets("VAO_KHUNG")
    .[E15].Value = Ten
    .[E16].Value = Ngay
    .[E17].Value = Gtinh
    .[E18].Value = Nsinh
' ----------- thi nghiem:  cho vao khung textbox ------------
    .TEXTBOX1.Text = Ten
    .TEXTBOX2.Value = Ngay
    .TEXTBOX3.Value = Nsinh
    .TEXTBOX4.Value = Gtinh
    .TEXTBOX5.Value = DToc
    .TEXTBOX6.Value = TGiao
    .TEXTBOX7.Value = Hokhau
    .TEXTBOX8.Value = Trdo    '-------- khong duoc.. hic hic
End With
End Sub
Nếu lấy thông tin vào các ô của excel thì em đã làm được. Em thử thí nghiệm lấy các thông tin này vào các khung Textbox thì không được. Các Anh chị và các bạn cho em hỏi là có cách gì để lấy các thông tin ở sheet Danh_sach vào các khung Textbox tương ứng bên sheet VAO_KHUNG không ạ?. Nếu làm được thì em phải thay đổi code thế nào?. Mong các anh chị lấy giúp thông tin vào các khung Textbox trong file đính kèm giùm em!. Em cảm ơn nhiều!.
 

File đính kèm

Lần chỉnh sửa cuối:
- Đây chính là
Mã:
.ShapeRange.Name = "Textbox1"
thì đúng hơn.
- Làm sao để lấy được các thông tin vào Shape này ?
- Rất mong được mọi người xem và cho cách giải giùm em. Hoặc là cho ý kiến "lấy dữ liệu vào trong Shape có thể thực hiện được hay không". Không thấy ai hồi âm gì em buồn quá híc hic....
 
Upvote 0
- Đây chính là
Mã:
.ShapeRange.Name = "Textbox1"
thì đúng hơn.
- Làm sao để lấy được các thông tin vào Shape này ?
- Rất mong được mọi người xem và cho cách giải giùm em. Hoặc là cho ý kiến "lấy dữ liệu vào trong Shape có thể thực hiện được hay không". Không thấy ai hồi âm gì em buồn quá híc hic....

Điền thông tin vào shape là chuyện rất bình thường mà bạn
Tham khảo cái này:
http://www.giaiphapexcel.com/forum/showthread.php?47555-Làm-nhãn-vở-học-sinh-trên-Excel
 
Upvote 0
Điền thông tin vào shape là chuyện rất bình thường mà bạn
Tham khảo cái này:
http://www.giaiphapexcel.com/forum/showthread.php?47555-Làm-nhãn-vở-học-sinh-trên-Excel
Sau khi xem cách làm của bác Ndu mà em phải nghĩ mãi. Mục đích là đưa bằng được nó vào trong textbox nên em làm như thế này
Mã:
Public Sub CHUYEN_VAO_TEXTBOX()Dim Ma As String, Ten As String, Gtinh As String, Ngay As Date
Dim Nsinh As String, DToc As String, TGiao As String, Trdo As String, Hokhau As String
Dim sArr(), I As Long
Ma = Sheets("VAO_KHUNG").[AF2].Value
With Sheets("Danh_Sach")
    sArr = .Range(.[A6], .[A65000].End(xlUp)).Resize(, 31).Value
End With
    For I = 1 To UBound(sArr, 1)
        If sArr(I, 2) = Ma Then
            Ten = sArr(I, 3) & " " & sArr(I, 4)
            Ngay = sArr(I, 5)
            Nsinh = sArr(I, 6)
            Gtinh = sArr(I, 7)
            DToc = sArr(I, 8)
            TGiao = sArr(I, 9)
            Trdo = sArr(I, 10)
            Hokhau = sArr(I, 13)
            Exit For
        End If
    Next I
With Sheets("VAO_KHUNG")
    .[E15].Value = Ten
    .[E16].Value = Ngay
    .[E17].Value = Gtinh
    .[E18].Value = Nsinh
    .[E19].Value = DToc
    .[E20].Value = TGiao
    .[E21].Value = Trdo
    .[E22].Value = Hokhau
End With
End Sub
[CODE]Ẩn mấy em này đi vậy

.[E15].Value = Ten
.[E16].Value = Ngay
.[E17].Value = Gtinh
.[E18].Value = Nsinh
.[E19].Value = DToc
.[E20].Value = TGiao
.[E21].Value = Trdo
.[E22].Value = Hokhau

[/CODE]
- Cộng với công thức tham chiếu cho các khung textbox
Mã:
=VAO_KHUNG!$E$15
=VAO_KHUNG!$E$16
=VAO_KHUNG!$E$17
=VAO_KHUNG!$E$18
=VAO_KHUNG!$E$19
...
Em thấy cũng đạt được mục đích. Cảm ơn bác Ndu
- Không biết có còn cách nào khác nữa không các bác ơi!.
 

File đính kèm

Upvote 0
=VAO_KHUNG!$E$15
=VAO_KHUNG!$E$16
=VAO_KHUNG!$E$17
=VAO_KHUNG!$E$18
=VAO_KHUNG!$E$19
- Không biết có còn cách nào khác nữa không các bác ơi!.

Dùng công thức tham chiếu của bạn với Textbox + Vlookup là ra rồi khỏi cần code vì mã NV là duy nhất nên khỏi lo trùng cho đơn giản
 
Upvote 0
Dùng công thức tham chiếu của bạn với Textbox + Vlookup là ra rồi khỏi cần code vì mã NV là duy nhất nên khỏi lo trùng cho đơn giản
- Các Bác cho em hỏi với!. Khi sử dụng VBA mà không dùng công thức để tham chiếu vào Textbox thì có cách làm không ạ?
 
Upvote 0
- Các Bác cho em hỏi với!. Khi sử dụng VBA mà không dùng công thức để tham chiếu vào Textbox thì có cách làm không ạ?
Bạn thử code này có gì thay thế phù hợp

Mã:
Sub Test()
Sheets("VAO_KHUNG").Shapes(4).TextFrame.Characters.Text = "GPE" 'Có thể thay thế Shapes(4) thành tên của Textbox
'GPE thay thế bằng giá trị bạn muốn đưa vào
End Sub
 
Upvote 0
Bạn thử code này có gì thay thế phù hợp

Mã:
Sub Test()
Sheets("VAO_KHUNG").Shapes(4).TextFrame.Characters.Text = "GPE" 'Có thể thay thế Shapes(4) thành tên của Textbox
'GPE thay thế bằng giá trị bạn muốn đưa vào
End Sub
Em thay bằng tên của textbox do mình đặt thì không được; theo tên của Shapes(tương ứng) thì OK.
Cảm ơn Bác đã hướng dẫn. Em Sửa thế này là OK rồi!.
Mã:
Public Sub CHUYEN_VAO_TEXTBOX()Dim Ma As String, Ten As String, Gtinh As String, Ngay As Date
Dim Nsinh As String, DToc As String, TGiao As String, Trdo As String, Hokhau As String
Dim sArr(), I As Long
Ma = Sheets("VAO_KHUNG").[AF2].Value
With Sheets("Danh_Sach")
    sArr = .Range(.[A6], .[A65000].End(xlUp)).Resize(, 31).Value
End With
    For I = 1 To UBound(sArr, 1)
        If sArr(I, 2) = Ma Then
            Ten = sArr(I, 3) & " " & sArr(I, 4)
            Ngay = sArr(I, 5)
            Nsinh = sArr(I, 6)
            Gtinh = sArr(I, 7)
            DToc = sArr(I, 8)
            TGiao = sArr(I, 9)
            Trdo = sArr(I, 10)
            Hokhau = sArr(I, 13)
            Exit For
        End If
    Next I
With Sheets("VAO_KHUNG")
    .Shapes(1).TextFrame.Characters.Text = Ten
    .Shapes(2).TextFrame.Characters.Text = Ngay
    .Shapes(3).TextFrame.Characters.Text = Gtinh
    .Shapes(4).TextFrame.Characters.Text = Nsinh
    .Shapes(5).TextFrame.Characters.Text = DToc
    .Shapes(6).TextFrame.Characters.Text = TGiao
    .Shapes(7).TextFrame.Characters.Text = Trdo
    .Shapes(8).TextFrame.Characters.Text = Hokhau
End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
- Với code của bài #8 em sửa đã chạy tuy nhiên lại gặp vấn đề sau mong các bác xem giúp em với!.
- Dòng lệnh này để lấy ngày tháng năm vào trong Texbox:
HTML:
.Shapes(2).TextFrame.Characters.Text = Ngay
em đã khai báo kiểu: Ngay As Date.
- Em nghĩ là do dòng màu đỏ ở trên làm cho nó bị lỗi (lúc này lại bị ngược "Ngày thành tháng, tháng thành ngày")
Em nghĩ là do khung Texbox này ở dạng Text nên không đúng khai báo dạng ngày tháng năm nên bị lỗi. Em có điều chỉnh như chưa được. Ai biết điều chỉnh giúp em phát! --=0--=0. Em xin cảm ơn!.
 
Upvote 0

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

Back
Top Bottom