Code lấy tên sheet bỏ vào 1 file khác ?

Liên hệ QC

kydang1989

Thành viên chính thức
Tham gia
17/10/14
Bài viết
63
Được thích
3
Xin chào các a/c GPE
Mình có nhiều flie, mỗi file có nhiều sheet, tên sheet cũng là tên mã hàng,
mình muốn lấy tên các sheet đó bỏ vào 1 file"thongke.mahang"

khi chạy code thì các file đó vẫn đóng, chỉ có file "thongke.mahang" là mở. sau khi chạy xong mình sẽ biết được có tất cả bao nhiệu mã hàng
 

File đính kèm

  • mahang.rar
    20.1 KB · Đọc: 41
Hic .. nghĩ mãi chưa ra cái dzụ dấu chấm trong tên sheet bị chuyển thành # ....
@huuthang_bd đã từng có thắc mắc tương tự, không biết là bạn ấy có tìm ra giải pháp hay là chưa nhỉ.
 
Upvote 0
@huuthang_bd đã từng có thắc mắc tương tự, không biết là bạn ấy có tìm ra giải pháp hay là chưa nhỉ.
cái bug nào khó chịu thật đó
 
Upvote 0
cái bug nào khó chịu thật đó
Dưới đây là những ký tự nên tránh dùng để đặt tên sheet, name, tên cột để tránh gặp rắc rối về sau


Space
Apostrophe'
Quotation mark"
Apostrophe'
At sign@
Grave accent`
Number sign#
Percent%
Greater than sign>
Less than sign<
Exclamation mark!
Period.
Brackets[ ]
Asterisk*
Dollar sign$
Semicolon;
Colon:
Question mark?
Caret^
Braces{ }
Plus sign+
Hyphen-
Equal sign=
Tilde~
Backslash|
 
Upvote 0
Dưới đây là những ký tự nên tránh dùng để đặt tên sheet, name, tên cột để tránh gặp rắc rối về sau


Space
Apostrophe'
Quotation mark"
Apostrophe'
At sign@
Grave accent`
Number sign#
Percent%
Greater than sign>
Less than sign<
Exclamation mark!
Period.
Brackets[ ]
Asterisk*
Dollar sign$
Semicolon;
Colon:
Question mark?
Caret^
Braces{ }
Plus sign+
Hyphen-
Equal sign=
Tilde~
Backslash|
Mấy cái dấu lạ lạ thì không nói, riêng dấu chấm với dấu gạch ngang mà cấm thì thua rồi
 
Upvote 0
Dưới đây là những ký tự nên tránh dùng để đặt tên sheet, name, tên cột để tránh gặp rắc rối về sau


Space
Apostrophe'
Quotation mark"
Apostrophe'
At sign@
Grave accent`
Number sign#
Percent%
Greater than sign>
Less than sign<
Exclamation mark!
Period.
Brackets[ ]
Asterisk*
Dollar sign$
Semicolon;
Colon:
Question mark?
Caret^
Braces{ }
Plus sign+
Hyphen-
Equal sign=
Tilde~
Backslash|
Chuẩn vậy là từ nay khỏi bàn cải hay mất công mò code nữa he .. mất thời gian ra ai biểu cứ tự làm khó mình chi vẻ ra cái tên Sheet lằng nhằng mì tôm cua :p
 
Upvote 0
Chuẩn vậy là từ nay khỏi bàn cải hay mất công mò code nữa he .. mất thời gian ra ai biểu cứ tự làm khó mình chi vẻ ra cái tên Sheet lằng nhằng mì tôm cua :p
Loại bỏ các ký tự cấm thì khả năng đặt tên cũng là vô cùng lớn. Vậy tại sao cứ "phải" dùng các ký tự cấm kia? Ngay cả tên tập tin trên đĩa người ta cũng không cho dùng một loạt ký tự. Tất nhiên người ta có lý do nhưng người ta không có trách nhiệm giải thích, báo cáo với ai cả. Mà biết lý do để làm gì? Chỉ để thỏa mãn trí tò mò?
 
Upvote 0
Loại bỏ các ký tự cấm thì khả năng đặt tên cũng là vô cùng lớn. Vậy tại sao cứ "phải" dùng các ký tự cấm kia? Ngay cả tên tập tin trên đĩa người ta cũng không cho dùng một loạt ký tự. Tất nhiên người ta có lý do nhưng người ta không có trách nhiệm giải thích, báo cáo với ai cả. Mà biết lý do để làm gì? Chỉ để thỏa mãn trí tò mò?
Như thầy @ndu96081631 nói mình thấy dấu chấm và gạch ngang dùng nhiều, cấm là khó chịu ah
 
Upvote 0
Như thầy @ndu96081631 nói mình thấy dấu chấm và gạch ngang dùng nhiều, cấm là khó chịu ah
Dùng nhiều hay dùng ít thì mỗi người hãy nói về nhận xét của mình thôi. Tôi chả thấy bức xúc gì cả. Loại trừ các ký tự cấm thì tôi vẫn có khả năng tạo ra hàng tỷ tỷ cái tên. Đủ xài.
 
Upvote 0
Chuẩn vậy là từ nay khỏi bàn cải hay mất công mò code nữa he .. mất thời gian ra ai biểu cứ tự làm khó mình chi vẻ ra cái tên Sheet lằng nhằng mì tôm cua :p
Vấn đề là không phải mình viết code cho mình mà đa phần là viết cho những dữ liệu đã có sẵn từ đời nào rồi. Họ đang có 1000 files, mỗi file chứa vài chục sheet, tất cả đã đặt tên sẵn. Giờ... làm sao? Kêu họ "ông muốn tôi viết code thì ông vui lòng mở mấy file đó và đổi hết tên sheet cho tôi"
???!!!
Chắc chắn phải có cách, chỉ là tạm thời chưa nghĩ ra thôi. Tôi sẽ lưu ý vấn đề này!
 
Upvote 0
Em n
Vấn đề là không phải mình viết code cho mình mà đa phần là viết cho những dữ liệu đã có sẵn từ đời nào rồi. Họ đang có 1000 files, mỗi file chứa vài chục sheet, tất cả đã đặt tên sẵn. Giờ... làm sao? Kêu họ "ông muốn tôi viết code thì ông vui lòng mở mấy file đó và đổi hết tên sheet cho tôi"
???!!!
Chắc chắn phải có cách, chỉ là tạm thời chưa nghĩ ra thôi. Tôi sẽ lưu ý vấn đề này!
Em nghỉ vầy:
1/ nếu xài Workbook.open mở lên xong đổi tên Sheet là hạ sách
2/ nếu xài ADO đổi tên Sheet là thượng sách
...
...
Tuy nhiên mục số 2 tên sheet kiểu phạm qui của Bill thì ADO nó ko có hiểu hay hiểu linh tinh VD: 1.1 thì nó hiểu ra1#1
 
Upvote 0
Upvote 0
Mình có tham khảo trên mạng và chỉnh sửa 1 chút cho phù hợp.

Function GetSheetName(iFilePath As String)
Dim sh As Object
Set sh = GetObject(iFilePath).Worksheets
ReDim t(1 To sh.Count, 1 To 1)
Dim i
For i = 1 To sh.Count
t(i, 1) = sh(i).Name
Next i
GetSheetName = t
End Function

Sub Test()
Dim mFilePath As String
mFilePath = "C:\Users\Acer\Desktop\Deck top\Decktop\THE KHO.xlsx" 'thay bang duong dan khac
Dim t: t = GetSheetName(mFilePath)
[A1].Resize(UBound(t, 1)) = t
End Sub
 
Upvote 0
Mình có tham khảo trên mạng và chỉnh sửa 1 chút cho phù hợp.

Function GetSheetName(iFilePath As String)
Dim sh As Object
Set sh = GetObject(iFilePath).Worksheets
ReDim t(1 To sh.Count, 1 To 1)
Dim i
For i = 1 To sh.Count
t(i, 1) = sh(i).Name
Next i
GetSheetName = t
End Function

Sub Test()
Dim mFilePath As String
mFilePath = "C:\Users\Acer\Desktop\Deck top\Decktop\THE KHO.xlsx" 'thay bang duong dan khac
Dim t: t = GetSheetName(mFilePath)
[A1].Resize(UBound(t, 1)) = t
End Sub
Mở file đọc tên sheet thì còn nói làm gì hả bạn?
 
Upvote 0
Web KT
Back
Top Bottom