Nhờ mọi người hỗ trợ sửa lỗi code

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

thang_nguyen1

Thành viên hoạt động
Tham gia
6/10/16
Bài viết
136
Được thích
8
Nhờ mọi người giúp gỡ lỗi code và nguyên nhân nó là gì ạ. Mình xin cảm ơn1688488274211.png
1688488271489.png
 
Cảm ơn @Chủ bài đăng, vì nhờ bạn mà mình được biết:
Chiếc kính phóng đại của mình đã không thể phù hợp với mình nữa;
Xin cảm ơn tất cả mọi người đã đọc & chúc vui vẻ!
 
Upvote 0
View attachment 292409


→ → → @ ← ← ← $$$$@ → → → @ ← ← ←
Sub MergeFilesExcel()
Dim path As String, ThisWB As String, lngFilecounter As Long
Dim wbDest As Workbook, shtDest As Worksheet, ws As Worksheet
Dim Filename As String, Wkb As Workbook
Dim CopyRng As Range, Dest As Range
Dim RowofCopySheet As Integer
RowofCopySheet = 2
ThisWB = ActiveWorkbook.Name
path = UserForm1.TextBox1.Text
Application.EnableEvents = False
Application.ScreenUpdating = False
Set shtDest = ActiveWorkbook.Sheets(1)
Filename = Dir(path & "\*.csv", vbNormal)
If Len(Filename) = 0 Then Exit Sub
Do Until Filename = vbNullString
If Not Filename = ThisWB Then
Set Wkb = Workbooks.Open(Filename:=path & "\" & Filename)
Set CopyRng = Wkb.Sheets(1).Range(Cells(RowofCopySheet, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count))
Set Dest = shtDest.Range("A" & shtDest.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1)
CopyRng.Copy Dest
Wkb.Close False
End If
Filename = Dir()
Loop
Range("A1").Select

Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub
Bài đã được tự động gộp:

Sub MergeFilesExcel()
Dim path As String, ThisWB As String, lngFilecounter As Long
Dim wbDest As Workbook, shtDest As Worksheet, ws As Worksheet
Dim Filename As String, Wkb As Workbook
Dim CopyRng As Range, Dest As Range
Dim RowofCopySheet As Integer
RowofCopySheet = 2
ThisWB = ActiveWorkbook.Name
path = UserForm1.TextBox1.Text
Application.EnableEvents = False
Application.ScreenUpdating = False
Set shtDest = ActiveWorkbook.Sheets(1)
Filename = Dir(path & "\*.csv", vbNormal)
If Len(Filename) = 0 Then Exit Sub
Do Until Filename = vbNullString
If Not Filename = ThisWB Then
Set Wkb = Workbooks.Open(Filename:=path & "\" & Filename)
Set CopyRng = Wkb.Sheets(1).Range(Cells(RowofCopySheet, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count))
Set Dest = shtDest.Range("A" & shtDest.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1)
CopyRng.Copy Dest
Wkb.Close False
End If
Filename = Dir()
Loop
Range("A1").Select

Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub
Bác SQ xin lỗi nhiều ạ. Code đây ạ. Mong bác giúp đỡ. Mình test máy khác ko sao. Mỗi máy mình bị
 
Upvote 0
Sub MergeFilesExcel()
Dim path As String, ThisWB As String, lngFilecounter As Long
Dim wbDest As Workbook, shtDest As Worksheet, ws As Worksheet
Dim Filename As String, Wkb As Workbook
Dim CopyRng As Range, Dest As Range
Dim RowofCopySheet As Integer
RowofCopySheet = 2
ThisWB = ActiveWorkbook.Name
path = UserForm1.TextBox1.Text
Application.EnableEvents = False
Application.ScreenUpdating = False
Set shtDest = ActiveWorkbook.Sheets(1)
Filename = Dir(path & "\*.csv", vbNormal)
If Len(Filename) = 0 Then Exit Sub
Do Until Filename = vbNullString
If Not Filename = ThisWB Then
Set Wkb = Workbooks.Open(Filename:=path & "\" & Filename)
Set CopyRng = Wkb.Sheets(1).Range(Cells(RowofCopySheet, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count))
Set Dest = shtDest.Range("A" & shtDest.UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1)
CopyRng.Copy Dest
Wkb.Close False
End If
Filename = Dir()
Loop
Range("A1").Select

Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub
Bài đã được tự động gộp:


Bác SQ xin lỗi nhiều ạ. Code đây ạ. Mong bác giúp đỡ. Mình test máy khác ko sao. Mỗi máy mình bị
Mạnh dạn đoán các files bạn để trong folder/đường dẫn có dấu/ký tự đặc biệt/không phải chữ la tinh. Hàm Dir() kỵ mấy thứ đó lắm.
Kiểm tra trước xem.
 
Upvote 0
Mạnh dạng đoán các tệp bạn để trong thư mục/đường dẫn có dấu/ký tự đặc biệt/không phải chữ la tinh. Hàm Dir() kỵ mấy thứ đó lắm.
Check tra cứu

Mạnh dạng đoán các tệp bạn để trong thư mục/đường dẫn có dấu/ký tự đặc biệt/không phải chữ la tinh. Hàm Dir() kỵ mấy thứ đó lắm.
Kiểm tra trước khi xem.
C mình hỏi là mình chỉ muốn copy dòng đầu của file cần copy thì sửa code ra sao bạn
 
Upvote 0
Code này bạn lấy ở đâu? và trước khi bị lỗi bạn đã chạy thành công lần nào chưa?
Lỗi này mình sửa được rồi. Cảm ơn bạn. Mình muốn hỏi thêm là giờ mình muốn chỉ lấy dòng đầu tiên của các sheet cần gộp phải sửa code như thế nào. Mong bạn giúp đỡ
 
Upvote 0
. . . . . . Mình muốn hỏi thêm là giờ mình muốn (2) chỉ lấy dòng đầu tiên của (1) các sheet cần gộp phải sửa code như thế nào. . . . . .
(1) Như vậy bạn cũng có những trang (sheet) không cần gộp, phải không; & quan trọng là sẽ phân biệt giữa chúng như thế nào?
(2) Dòng đầu tiên của bạn là như thế nào sau đây:
→ Dòng đầu tiên của trang tính
→ Dòng đầu tiên có dữ liệu (Có thể đó là dòng chứa tiêu đề hay không chứa chúng)
→ Dòng đầu tiên chỉ toàn là dữ liệu
→ . . . .
 
Upvote 0
(1) Như vậy bạn cũng có những trang (sheet) không cần gộp, phải không; & quan trọng là sẽ phân biệt giữa chúng như thế nào?
(2) Dòng đầu tiên của bạn là như thế nào sau đây:
→ Dòng đầu tiên của trang tính
→ Dòng đầu tiên có dữ liệu (Có thể đó là dòng chứa tiêu đề hay không chứa chúng)
→ Dòng đầu tiên chỉ toàn là dữ liệu
→ . . . .
Nó là dòng đầu tiên chứa tiêu đề. Có nghĩa là chạy xong code như ở trên xong cần chạy code để lấy tiêu đề ở file Log csv. Nếu bạn có thể gộp được hai dòng lệnh này mình cảm ơn. Dữ liệu khi gộp xong như ở "Gộp file"
 

File đính kèm

  • Gộp file.rar
    136.7 KB · Đọc: 4
  • Gộp file.xlsx
    50.8 KB · Đọc: 5
Upvote 0
Nó là dòng đầu tiên chứa tiêu đề. Có nghĩa là chạy xong mã như ở trên xong cần chạy mã để lấy tiêu đề trong tệp Nhật ký csv. Nếu bạn có thể nối được hai dòng lệnh này, mình cảm ơn. Dữ liệu khi chưa hoàn thành như ở "Gộp tệp"
Bác @SA_DQ giúp mình vấn đề này với
 
Upvote 0
Web KT

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

Back
Top Bottom