Chuyên đề giải đáp những thắc mắc về code VBA (11 người xem)

Liên hệ QC

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

maytinhvp01

Thành viên thường trực
Tham gia
27/7/13
Bài viết
390
Được thích
179
Mình muốn nhờ giải thich câu lệnh " If Ran.Cells(d, c) > max Then max = Ran.Cells(d, c) "
trong ví du:
Public Function LonNhat(Ran As Range)
Dim max As Double, v As Integer, d As Integer, c As Integer
max = Ran.Cells(1, 1)
For d = 1 To Ran.Rows.Count
For c = 1 To Ran.Columns.Count
If Ran.Cells(d, c) > max Then max = Ran.Cells(d, c)
Next c
Next d
v = Tim(max, Ran)
LonNhat = max
End Function
-------------------------------------------------------
[INFO1]Thông báo:
Vì topic này:
http://www.giaiphapexcel.com/forum/...ải-thích-các-code-đề-nghị-các-bạn-gửi-vào-đây
đã quá dài nên BQT đóng lại.
Nay tôi mở topic mới với cùng chủ đề: GIẢI THÍCH NHỮNG THẮC MẮC VỀ CODE
Các bạn nếu có nhu cầu giải thích code, vui lòng post tại đây nhé
NDU96081631

[/INFO1]
 
Chỉnh sửa lần cuối bởi điều hành viên:
Bạn ơi không báo lỗi mà chỉ là dữ liệu mình không đủ thôi. Ngoài ra đây là vùng dữ liệu mình cần lấy cho nên tăng cái này thêm bao nhiêu thì kết quả vẫn vậy
Đây là câu lệnh gán dữ liệu vào mảng .Nó sẽ không báo lỗi khi dữ liệu của bạn vượt quá 50.000.Mà nó lấy thiếu dữ liệu vào mảng đó.Nên khi dữ liệu ra sẽ bị thiếu.
 
Upvote 0
Đây là câu lệnh gán dữ liệu vào mảng .Nó sẽ không báo lỗi khi dữ liệu của bạn vượt quá 50.000.Mà nó lấy thiếu dữ liệu vào mảng đó.Nên khi dữ liệu ra sẽ bị thiếu.
Uh mình hiểu, nhưng mình biết dữ liệu nó chỉ đến đó thôi bạn ạ, vậy mới khó hiểu :((. Dữ liệu đến đúng dòng 50.000
 
Upvote 0
Cho em hỏi đoạn code này có gì sai?
PHP:
Public Sub CongToCompare()
    Dim Ws As Worksheet
    Dim Arr(), i As Long, j As Long, k As Long
    Dim SoSheet As Byte

    SoSheet = Application.Sheets.Count

    ReDim Result(1 To SoSheet * 50000, 1 To 10)
    With Workbooks("(E) Daily Attendance(Upload)(V)(H4006M1_VN).xls")
        For Each Ws In .Worksheets
            Arr = Ws.Range("A5", Ws.Range("A50000").End(xlUp)).Resize(, 10).Value2
            For i = 1 To UBound(Arr, 1)
                If Len(Arr(i, 2)) = 5 Then
                    k = k + 1
                    For j = 1 To 10
                        Result(k, j) = Arr(i, j)
                    Next j
                End If
            Next i
        Next Ws
    End With

    With Workbooks("Balance MrT and ERP.xlsb")
        .Sheets("Data").Range("C5").Resize(k, 10) = Result
    End With

End Sub

Đoạn code này nằm trong file Balance MrT and ERP.xlsb và là file đang làm việc. Khi em chạy code thì dữ liệu lấy từ file (E) Daily Attendance(Upload)(V)(H4006M1_VN).xls sang bị thiếu là sao nhỉ? Không biết cái For each của em có vấn đề gì không mà lại vậy
Thấy bàng tán sôi nổi. Nên Chọt vào sửa code. Không được thì thôi nhé
Mã:
Public Sub CongToCompare()
    Dim Ws As Worksheet, Result As Variant, Arr(), i As Long, j As Long, k As Long

    With Workbooks("(E) Daily Attendance(Upload)(V)(H4006M1_VN).xls")
        For Each Ws In .Worksheets
            Arr = Ws.Range("A5", Ws.Range("A65000").End(xlUp)).Resize(, 10).Value2
            For i = 1 To UBound(Arr, 1)
                If Len(Arr(i, 2)) = 5 Then
                    k = k + 1
                    ReDim Preserve Result(1 To 10, 1 To k)
                    For j = 1 To 10
                        Result(j, k) = Arr(i, j)
                    Next j
                End If
            Next i
        Next Ws
    End With

    With Workbooks("Balance MrT and ERP.xlsb")
        .Sheets("Data").Range("C5").Resize(k, 10) = Application.WorksheetFunction.Transpose(Result)
    End With

End Sub



 
Lần chỉnh sửa cuối:
Upvote 0
-em có 1 vấn đề nhờ các anh chị trong group giúp ạ
-em có 1 File excel ( sheep 1 là "thông tin", sheep 2 là "file tổng")
+ em sử dụng làm Vlookup để lấy thông tin từ "file tổng" chuyển qua file " thông tin" dựa vào Mã HV
+ Vấn đề em gặp là Vlookup chỉ lấy được giá trị mà không lấy đc: màu sắc của ô ( ô được tô màu vàng ), comment, màu sắc của chữ ( chữ màu đỏ ).
- em mong anh chị giúp tạo 1 hàm Xlookup có chức năng như Vlookup nhưng lấy được giá trị và cả (màu sắc của ô,comment, màu sắc của chữ ) , còn nếu không thể làm 1 hàm như Xlookup anh chị giúp em viết code lấy giá trị và màu sắc của ô,comment, màu sắc của chữ dựa vào mã HV trong file " thông tin" ạ
vd: =Xlookup ( X, Y ,Z ,0 or 1)
X là Giá trị dùng để dò tìm
Y là Bảng giá trị dò
Z là Thứ tự của cột cần lấy dữ liệu trên bảng giá trị dò
0 là giá trị tuyệt đối
X Y Z là các giá trị mình nhập, mong các anh chị giúp, em cảm ơn nhiều ạ

em có viết 1 đoan VBA như sau :
Function Xlookup(cn As String)
Xlookup = Sheet2.Range("a:a").Find(cn).Offset(, 1).Value
End Function
nhưng nhựơc điểm là không linh động cột cần lấy, mỗi lần lấy phải vào code sửa offset và không lấy được màu sắc của ô,comment, màu sắc của chữ ( còn thua xài vlookup nữa anh chị ạ :(( )
 

File đính kèm

Upvote 0
-em có 1 vấn đề nhờ các anh chị trong group giúp ạ
-em có 1 File excel ( sheep 1 là "thông tin", sheep 2 là "file tổng")
+ em sử dụng làm Vlookup để lấy thông tin từ "file tổng" chuyển qua file " thông tin" dựa vào Mã HV
+ Vấn đề em gặp là Vlookup chỉ lấy được giá trị mà không lấy đc: màu sắc của ô ( ô được tô màu vàng ), comment, màu sắc của chữ ( chữ màu đỏ ).
- em mong anh chị giúp tạo 1 hàm Xlookup có chức năng như Vlookup nhưng lấy được giá trị và cả (màu sắc của ô,comment, màu sắc của chữ ) , còn nếu không thể làm 1 hàm như Xlookup anh chị giúp em viết code lấy giá trị và màu sắc của ô,comment, màu sắc của chữ dựa vào mã HV trong file " thông tin" ạ
vd: =Xlookup ( X, Y ,Z ,0 or 1)
X là Giá trị dùng để dò tìm
Y là Bảng giá trị dò
Z là Thứ tự của cột cần lấy dữ liệu trên bảng giá trị dò
0 là giá trị tuyệt đối
X Y Z là các giá trị mình nhập, mong các anh chị giúp, em cảm ơn nhiều ạ

em có viết 1 đoan VBA như sau :
Function Xlookup(cn As String)
Xlookup = Sheet2.Range("a:a").Find(cn).Offset(, 1).Value
End Function
nhưng nhựơc điểm là không linh động cột cần lấy, mỗi lần lấy phải vào code sửa offset và không lấy được màu sắc của ô,comment, màu sắc của chữ ( còn thua xài vlookup nữa anh chị ạ :(( )

Xin chào @kienphamiuh ,
Oanh Thơ (OT) không thể tạo được Function Xlookup theo mong muốn của bạn, trong khi chờ đợi bạn dùng tạm sub FindAndCopyPase xem được không?
Mã:
Sub FindAndCopyPase()
    Dim lastRow As Long, i As Long, varKey As Variant
    Dim c As Range, shtData As Worksheet, shtKQ As Worksheet
    Set shtData = ThisWorkbook.Worksheets("Sheet2")
    Set shtKQ = ThisWorkbook.Worksheets("Sheet1")
    With shtKQ
        lastRow = .Range("A" & .Rows.Count).End(xlUp).Row
        varKey = .Range("A2:A" & lastRow)
    End With
    With shtData
        For i = LBound(varKey) To UBound(varKey)
            Set c = .Columns("A").Find(What:=varKey(i, 1), _
                After:=.Range("A1"), LookIn:=xlValues, _
                LookAt:=xlWhole, SearchDirection:=xlNext)
            If c Is Nothing Then
                shtKQ.Cells(i + 1, 2).Value = "#N/A"
            Else
                c.Resize(1, 2).Offset(0, 1).Copy Destination:=shtKQ.Cells(i + 1, 2)
            End If
        Next i
    End With
End Sub
-------------
Ngoài ra, OT góp ý chút với bạn.
Trường hợp của bạn nên tạo một chủ đề mới, còn trong chủ đề này có thể chỉ trao đổi những vấn đề liên quan đến code có sẵn.
 
Upvote 0
Xin chào @kienphamiuh ,
Oanh Thơ (OT) không thể tạo được Function Xlookup theo mong muốn của bạn, trong khi chờ đợi bạn dùng tạm sub FindAndCopyPase xem được không?
Mã:
Sub FindAndCopyPase()
    Dim lastRow As Long, i As Long, varKey As Variant
    Dim c As Range, shtData As Worksheet, shtKQ As Worksheet
    Set shtData = ThisWorkbook.Worksheets("Sheet2")
    Set shtKQ = ThisWorkbook.Worksheets("Sheet1")
    With shtKQ
        lastRow = .Range("A" & .Rows.Count).End(xlUp).Row
        varKey = .Range("A2:A" & lastRow)
    End With
    With shtData
        For i = LBound(varKey) To UBound(varKey)
            Set c = .Columns("A").Find(What:=varKey(i, 1), _
                After:=.Range("A1"), LookIn:=xlValues, _
                LookAt:=xlWhole, SearchDirection:=xlNext)
            If c Is Nothing Then
                shtKQ.Cells(i + 1, 2).Value = "#N/A"
            Else
                c.Resize(1, 2).Offset(0, 1).Copy Destination:=shtKQ.Cells(i + 1, 2)
            End If
        Next i
    End With
End Sub
-------------
Ngoài ra, OT góp ý chút với bạn.
Trường hợp của bạn nên tạo một chủ đề mới, còn trong chủ đề này có thể chỉ trao đổi những vấn đề liên quan đến code có sẵn.
cảm ơn bạn mình sẽ tạo 1 chủ đề, công việc của mình liên quan đến mấy cái này , hôm nào cũng copy paste coment với màu sắc bằng thủ công mà nản ghê luôn :)
 
Upvote 0
File của mình vẫn mở, dữ liệu lấy được chỉ là nó không lấy đủ.

Mình có sưu tập được đoạn code này nhưng áp dụng file mình thì nó không chạy, không hiểu sao luôn.
File của mình có nhiều sheet nhưng dữ liệu form là như nhau, tại ô A1 luôn là tiêu đề.

Dữ liệu bắt đầu có từ dòng 5 cột A đến cột J. (Vài vạn dòng)
Nó báo lỗi tại dòng: rst.Open SQL, cnn, 3, 3, 1 là Run-time error '450' Wrong number of arguments or invalid property assignment
PHP:
Sub NMH()
    Dim cnn As Object, rst As Object
    Dim SQL$, Ws As Worksheet
        Set cnn = CreateObject("ADODB.Connection")
        Set rst = CreateObject("ADODB.Connection")
        With cnn
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                                "Data source=" & ThisWorkbook.FullName & _
                                ";Extended properties=""Excel 12.0;IMEX=1;HDR=Yes"";"
            .Open
        End With
        For Each Ws In Worksheets
            If Ws.CodeName <> "Result" Then SQL = SQL & " " & "[" & Ws.Name & "$A5:J]"
        Next
        SQL = "SELECT * FROM " & Replace(Trim(SQL), " ", " UNION ALL SELECT * FROM ")
        rst.Open SQL, cnn, 3, 3, 1
        [A2].CopyFromRecordset rst
        rst.Close: Set rst = Nothing
        cnn.Close: Set cnn = Nothing
End Sub

Hi @tueyennhi , bạn thử:
Thay:
Mã:
Set rst = CreateObject("ADODB.Connection")
thành:
Mã:
Set rst = CreateObject("ADODB.Recordset")
và thay:
Mã:
If Ws.CodeName <> "Result"
thành:
Mã:
If Ws.CodeName <> "Sheet5"
Và sửa:
Mã:
Sheet1 (2)= Sheet2,
Sheet1 (3)= Sheet3,
Sheet1 (4)= Sheet4
Bỏ tất cả tất cả những gì sau khoảng trống.
Xem thế nào ạ.
 

File đính kèm

Upvote 0
Cốt ấy hốt ở đâu ra vậy?
Đem qua hộp CSDL hỏi. Và réo tên cái "chị" xinh xinh với cái tên phản cảm "ổ tơ ổ rệp" gì đó.

Vâng anh, code này em có từ khá lâu rồi giờ không nhớ ở chủ đề nào để hỏi. Chị xinh xinh có phải là Autoreply không anh :D vì em thấy chị đó like anh và ảnh đại diện thì rất xinh.
Bài đã được tự động gộp:

Thấy bàng tán sôi nổi. Nên Chọt vào sửa code. Không được thì thôi nhé
Mã:
Public Sub CongToCompare()
    Dim Ws As Worksheet, Result As Variant, Arr(), i As Long, j As Long, k As Long

    With Workbooks("(E) Daily Attendance(Upload)(V)(H4006M1_VN).xls")
        For Each Ws In .Worksheets
            Arr = Ws.Range("A5", Ws.Range("A65000").End(xlUp)).Resize(, 10).Value2
            For i = 1 To UBound(Arr, 1)
                If Len(Arr(i, 2)) = 5 Then
                    k = k + 1
                    ReDim Preserve Result(1 To 10, 1 To k)
                    For j = 1 To 10
                        Result(j, k) = Arr(i, j)
                    Next j
                End If
            Next i
        Next Ws
    End With

    With Workbooks("Balance MrT and ERP.xlsb")
        .Sheets("Data").Range("C5").Resize(k, 10) = Application.WorksheetFunction.Transpose(Result)
    End With

End Sub

Để mình thử, cảm ơn bạn nhé.
 
Upvote 0
Hi @tueyennhi , bạn thử:
Thay:
Mã:
Set rst = CreateObject("ADODB.Connection")
thành:
Mã:
Set rst = CreateObject("ADODB.Recordset")
và thay:
Mã:
If Ws.CodeName <> "Result"
thành:
Mã:
If Ws.CodeName <> "Sheet5"
Và sửa:
Mã:
Sheet1 (2)= Sheet2,
Sheet1 (3)= Sheet3,
Sheet1 (4)= Sheet4
Bỏ tất cả tất cả những gì sau khoảng trống.
Xem thế nào ạ.

Sau khi sửa lại tên sheet thì code đã chạy. Nhưng mình thấy mỗi một sheet sẽ mất đi một dòng. Sửa lại đoạn này

PHP:
...
If Ws.CodeName <> "Result" Then SQL = SQL & " " & "[" & Ws.Name & "$A5:J]"
...
thành
PHP:
...
If Ws.CodeName <> "Result" Then SQL = SQL & " " & "[" & Ws.Name & "$A4:J]"
...
thì dữ liệu đã được lấy đủ.
 
Upvote 0
Vâng anh, code này em có từ khá lâu rồi giờ không nhớ ở chủ đề nào để hỏi. Chị xinh xinh có phải là Autoreply không anh :D vì em thấy chị đó like anh và ảnh đại diện thì rất xinh.
...
Dùng từ "like" cẩn thận. Nó có hai nghĩa:
1. giống - tôi không dám nhận "giống cô ta" đâu
2. thích - tôi lại càng không dám nhận, "cô" hay "cậu" gì tôi cũng chạy hết.
 
Upvote 0
Dùng từ "like" cẩn thận. Nó có hai nghĩa:
1. giống - tôi không dám nhận "giống cô ta" đâu
2. thích - tôi lại càng không dám nhận, "cô" hay "cậu" gì tôi cũng chạy hết.

o_O Em chỉ mô tả hành động của chị "ổ tơ ổ rệp" thôi mà. Thôi thì thích câu nói của anh :D
 
Upvote 0
Em cần gửi lệnh in tới cửa sổ ứng dụng khác thông qua VBA. Code em viết
Sub Text()
AppActivate("Filetext")
Application.Wait Now + TimeValue("0:00:01")
Application.SendKeys "%P"
Application.Wait Now + TimeValue("0:00:01")
Application.SendKeys "~"
End Sub
Code chạy nhưng dòng
Application.SendKeys "%P"
Không thấy bật PrintPreview
Các bác giúp em với
 
Lần chỉnh sửa cuối:
Upvote 0
Em chào các Admin và các anh chị!
Em không biết đăng bài vào đây có đúng chuyên mục không, có gì sai mong anh chị thông cảm giúp đỡ em ạ!
Em có 1 file Đơn hàng cần dùng vba để tìm lọc dữ liệu của 2 hoặc nhiều sheet về 1 sheet theo như các yêu cầu có ghi chú trong file đính kèm. Em mới biết sơ xài về VBA nên mong các anh chị giúp đỡ ạ!
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em cần gửi lệnh in tới cửa sổ ứng dụng khác thông qua VBA. Code em viết
Sub Text()
AppActivate("Filetext")
Application.Wait Now + TimeValue("0:00:01")
Application.SendKeys "%P"
Application.Wait Now + TimeValue("0:00:01")
Application.SendKeys "~"
End Sub
Code chạy nhưng dòng
Application.SendKeys "%P"
Không thấy bật PrintPreview
Các bác giúp em với
Nếu không cần bí mật thì tôi tò mò muốn biết, ứng dụng kia thế nào, tên nó là gì, tôi có không.
 
Upvote 0
Nếu không cần bí mật thì tôi tò mò muốn biết, ứng dụng kia thế nào, tên nó là gì, tôi có không.
Ứng dụng đó là Bar Tender (in mã vạch)
Bài đã được tự động gộp:

Cho những thứ là code, là công thức vào chỗ chuyên chứa nó. Thấy người ta làm được thì mình cố làm cho giống vậy.

View attachment 209337

"Ko" là ứng dụng gì?

"Ko" hoạt động rồi thì hỏi làm gì nữa?
Nó hoạt động nhưng hình như nó ko sendkeys tổ hợp phím được ko biết là có cách nào khác để gọi lệnh in của ứng dụng này ko?
Ứng dung in mã vạch Bar Tender
 
Upvote 0
Em chào các Admin và các anh chị!
Em không biết đăng bài vào đây có đúng chuyên mục không, có gì sai mong anh chị thông cảm giúp đỡ em ạ!
Em có 1 file Đơn hàng cần dùng vba để tìm lọc dữ liệu của 2 hoặc nhiều sheet về 1 sheet theo như các yêu cầu có ghi chú trong file đính kèm. Em mới biết sơ xài về VBA nên mong các anh chị giúp đỡ ạ!
Hic hic có bác nào help em với ạ!
Bài đã được tự động gộp:

Hic hic có bác nào help em với ạ!
Hay là em đăng vào chưa đúng chuyên mục thì các bác chỉ giúp để em đăng lại ạ
Bài đã được tự động gộp:

Hic hic có bác nào help em với ạ!
Hay là em đăng vào chưa đúng chuyên mục thì các bác chỉ giúp để em đăng lại ạ
 
Upvote 0
Chào mọi người.
Em muốn thêm 1 cột STT ngay ở đầu, thì code không chạy được nữa.
Em không biết mình phải chỉnh chỗ nào để nếu chèn thêm cột vẫn không ảnh hưởng.
Mong cả nhà giúp đỡ.
Em có để file đính kèm ở dưới ạ.
Trân trọng.

Sub HienNgay()
On Error Resume Next
Application.ScreenUpdating = False
Dim Sh As Worksheet
Set Sh = Sheet1
n = Sh.Range("A65000").End(xlUp).Row
Sh.Range("A1:Q" & n).Copy Destination:=Sh.Range("AA1")
For i = n To 3 Step -1
If Format(Sh.Range("AM" & i), "dd/mm") = Format(Date, "dd/mm") And Sh.Range("AQ" & i) = "" Then
'
Else
Sh.Range("AA" & i & ":AQ" & i).Delete Shift:=xlUp
End If
Next
Sh.Columns("AE:AQ").Delete
Sh.Columns("AC:AC").Delete
ActiveWorkbook.Names.Add Name:="Danhsach", RefersToR1C1:= _
"=OFFSET(Sheet1!R3C27,,,COUNTA(Sheet1!R3C27:R500C27),4)"
Application.ScreenUpdating = True
End Sub
 

File đính kèm

Upvote 0
Gửi ACE GPE

Nhờ thêm code bên dưới giúp ạ!

Mã:
Private Sub cmdEdit_Click()



If Me!txtSTT.Value = "" Then

      

    MsgBox "Kh«ng cã d÷ liÖu ®Ó söa", , " Th«ng b¸o": Exit Sub

End If

Dim suanhaplieu As Long

Const TD As String = "cha nhËp d÷ liÖu!"

 

If Me!cbTinhTrang.Text = "" Then

    Msg = "T×nh tr¹ng"

ElseIf Me!txtKhachHang.Text = "" Then

    Msg = "Kh¸ch hµng"

ElseIf Me!txtVHC.Text = "" Then

    Msg = "VHC"

ElseIf Me!txtBOOK.Text = "" Then

    Msg = "Sè BOOKING"

ElseIf Me!txtGioCutOff.Text = "" Then

    Msg = "Giê Cut off"

ElseIf Me!txtngayCutOff.Text = "" Then

    Msg = "Ngµy Cut off"

ElseIf Me!cbNhaXe.Text = "" Then

    Msg = "Nhµ xe"

ElseIf Me!txtHangTau.Text = "" Then

    Msg = "H·ng tµu"

ElseIf Me!cbcangha.Text = "" Then

    Msg = "C¶ng h¹"

ElseIf Me!txtTauChuyen.Text = "" Then

    Msg = "tµu chuyÕn"

ElseIf Me!cbTuan.Text = "" Then

    Msg = "Tuan"

End If

If Msg <> "" Then

    MsgBox Msg & TD:                       Exit Sub

End If



Dim Rws As Long

Dim Rng As Range, sRng As Range

With TONGHOP

    Rws = .[A2].CurrentRegion.Rows.Count

    Set Rng = .[A2].Resize(Rws)

    Set sRng = Rng.Find(Me!txtSTT.Value, , xlValues, xlWhole)

    If Not sRng Is Nothing Then

  

    Rws = sRng.Row

    .Cells(Rws, "B").Value = Me!cbTuan.Text

    .Cells(Rws, "C").Value = Me!cbTinhTrang.Text

    .Cells(Rws, "D").Value = Me!txtKhachHang.Text

    .Cells(Rws, "E").Value = Me!txtVHC.Text

    .Cells(Rws, "F").Value = Me!txtBOOK.Text

    .Cells(Rws, "G").Value = Me!txtSoCont.Text

    .Cells(Rws, "H").Value = Me!txtDL.Text

    .Cells(Rws, "I").Value = Me!txtNW.Text

    .Cells(Rws, "J").Value = Me!txtngaydongcont.Text

    .Cells(Rws, "K").Value = Me!txtGioCutOff.Text

    .Cells(Rws, "L").Value = Me!txtngayCutOff.Text

    .Cells(Rws, "M").Value = Me!cbNhaXe.Text

    .Cells(Rws, "N").Value = Me!txtHangTau.Text

    .Cells(Rws, "O").Value = Me!cbcangha.Text

    .Cells(Rws, "P").Value = Me!txtTauChuyen.Text

    .Cells(Rws, "Q").Value = Me!txtETD.Text

    '.Cells(Rws, "P").Value = Me!txtETD.Text

    '.Cells(Rws, "P").Value = Me!txtETD.Text

    '.Cells(Rws, "P").Value = Me!txtETD.Text

    '.Cells(Rws, "P").Value = Me!txtETD.Text

    .Cells(Rws, "V").Value = Me!txtghichu.Text

    .Cells(Rws, "W").Value = Me!txtDienGiai.Text

    End If

End With

   MsgBox "Söa xong!", , " Th«ng b¸o"



End Sub

code này tìm ngay STT đó và ghi dè dữ liệu lên ngay dòng tìm đc, bây giờ mình muốn nó chèn thêm dòng bên dưới dòng tìm đc và dữ liệu sẽ đc ghi ngay dòng vùa chèn đó!

Cảm ơn ạ!
 
Upvote 0
Web KT

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

Back
Top Bottom