Trước khi gán xuống sheet thì xử lý nó trước nó đi anhChào các anh chị !!!!!
Em có code lấy dữ liệu, nhưng khi dữ liệu đập vào cột F và G thì không định dạng Text nên dùng Vlookup không ra.
Mà dữ liệu đập vào có cả Text và Number, mong các anh chị giúp đỡ.
Option Explicit
Sub LaySheetXuat()
Dim fd As Workbook, sd As Worksheet, sn As Worksheet, mn, lrd As Long, lrn As Long, i As Long, j As Long, k As Long, p As Long, ktts As Long, tensheet As Long
Dim chonFile, openfile
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set fd = ThisWorkbook
'Mo thuoc tinh File Open
chonFile = Application.GetOpenFilename(Title:="Chon file du lieu can lay", filefilter:="exel file(*.xls*),*.xls*", MultiSelect:=True)
On Error Resume Next
For i = 1 To UBound(chonFile)
On Error GoTo 0
If i = 0 Then Exit Sub
Set openfile = Workbooks.Open(chonFile(i), False)
With openfile
For ktts = 1 To Sheets.Count 'Kiem tra xem file co ten sheets can lay du lieu khong
If Sheets(ktts).Name = "Xuat" Then
tensheet = tensheet + 1
Exit For
End If
Next ktts
If tensheet = 0 Then 'Neu file khong co ten sheet nao giong thi dong file và thoát khoi Sub
openfile.Close
MsgBox "Khong co sheets nào giông tên sheet cân lay du lieu, vui long chon lai file khac"
GoTo thoat
End If
For j = 1 To fd.Sheets.Count
For p = 1 To .Sheets.Count
If fd.Sheets(j).Name = .Sheets(p).Name Then 'Nêu ten file nguon giong ten file dich thi lay du lieu
Set sd = fd.Sheets(j): lrd = sd.Cells(Rows.Count, 1).End(xlUp).Row
Set sn = openfile.Sheets(p): lrn = sn.Cells(Rows.Count, 1).End(xlUp).Row
mn = sn.Range("A6:P" & lrn): sd.Range("A" & lrd + 1).Resize(lrn - 4, 16) = mn
sd.Range("A" & lrd + 1).Resize(lrn - 4, 16).Borders.LineStyle = True
j = j + 1
End If
Next p
Next j
End With
openfile.Close
thoat:
Next i
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Nếu em gửi cho anh 1 cái ảnh. Xong bảo anh khám bệnh anh có chịu khám không?Bạn chỉ mình với, code đây:
Mình nhận ra code này của mình.Nếu em gửi cho anh 1 cái ảnh. Xong bảo anh khám bệnh anh có chịu khám không?
Thế anh vào chữa đi kìa. Gặp con ruột thì thớt mở cờ được rồi.Mình nhận ra code này của mình.
Dữ liệu người ta nâng như nâng trứng mà đem đập vào cột thì hỏng hết dữ liệu còn gì bạn ơi.Mà dữ liệu đập vào
Thấy có bạn vác đi đập vào cột này, cột kia đang xót hết cả ruột đây này.con ruột
Không có file thì mai lại tiếp tục hàn huyên nhỉ.
Nhất định không đưa file để thử thì đành dừng ở đây vậy.không được:
sao em thử thêm đoạn code này mà không được:
Mã:sd.Range("F:G" & lrd + 1) = "'" & sd.Range("F:G" & lrd + 1) sd.Range("F:G" & lrd + 1).Resize(r, 2).NumberFormat = "@"
Range("F:G" & lrd + 1)
Range("F" & lrd + 1 & ":G" & lrd + 1)
Thấy nói là phải định dạng vùng đích trước khi điền dữ liệu nguồn, cái này không chắc lắm, hình như là thế thì phải, lâu rồi quênChạy thấy đúng ý rồi anh ơi, nhưng không biết vận dụng anh @CHAOQUAY ơi.
sd.Range("A" & lrd + 1).Resize(lrn - 4, 16).NumberFormat = "@"
mn = sn.Range("A6:P" & lrn): sd.Range("A" & lrd + 1).Resize(lrn - 4, 16) = mn