xuanhoa7604
Thành viên hoạt động
- Tham gia
- 9/6/08
- Bài viết
- 169
- Được thích
- 82
- Nghề nghiệp
- Giáo viên
Bác nào biết cách lấy tên các sheet của một file excel (bằng VBA) mà không cần mở file đó không xin chỉ giáo? Xin cảm ơn trước!
cho mình hỏi là: Hiện tại mình có một workbook gồm 8 sheet, bây giờ mình muốn lấy tên của 7 sheet đầu tiên trong workbook đó để nhập vào một cột trong sheet thứ 8. vậy mình phải làm thê nào. xin mọi người giải đáp giúp ....
Sub Test()
For i = 1 To 7
Sheet8.Cells(i, 1) = Sheets(i).Name
Next i
End Sub
anh cho em hỏi .em có 1 file n sheet con-1 sheet tổng hợp . bây giờ em muốn lấy tất cả tên các sheet n vào sheet tổng hợp thì code như thế nào. bây giờ mới đụng chuyện này đây.chú ý không dùng vòng lặp như code của hai lúa bên dướiXin sửa lại code trên để có thể chạy trên Excel 2007
PHP:Private Sub cmdSelDir_Click() On Error GoTo Thoat lstWB.Clear With Application.FileDialog(4) .AllowMultiSelect = False: .Show txtUserDir = .SelectedItems(1) End With Thoat: End Sub
PHP:Private Sub txtUserDir_Change() Dim Temp As String, fN On Error Resume Next With CreateObject("Scripting.FileSystemObject") For Each fN In .GetFolder(txtUserDir).Files If InStr(Right(fN.Name, 5), ".xls") Then Temp = Temp & Chr(10) & fN.Name End If Next End With lstWB.List() = Split(Mid(Temp, 2, Len(Temp)), Chr(10)) End Sub
Bỏ UDF luônPHP:Private Sub lstWB_Click() Dim objConn As ADODB.Connection, objCat As ADOX.Catalog, tbl As ADOX.Table, Temp As String On Error Resume Next lstWS.Clear Set objConn = New ADODB.Connection objConn.Open "Provider=MSDASQL.1;Data Source=Excel Files; Initial Catalog=" & txtUserDir & "\" & lstWB Set objCat = New ADOX.Catalog Set objCat.ActiveConnection = objConn For Each tbl In objCat.Tables If Right(tbl.Name, 1) = "$" Or Right(tbl.Name, 2) = "$'" Then Temp = Temp & Chr(10) & Replace(Replace(tbl.Name, "$", ""), "'", "") End If Next tbl lstWS.List() = Split(Mid(Temp, 2, Len(Temp)), Chr(10)) objConn.Close End Sub
anh cho em hỏi .em có 1 file n sheet con-1 sheet tổng hợp . bây giờ em muốn lấy tất cả tên các sheet n vào sheet tổng hợp thì code như thế nào. bây giờ mới đụng chuyện này đây.chú ý không dùng vòng lặp như code của hai lúa bên dưới
dùng for next thì mình tự làm được . Cứ tưởng ko dùng vòng lặp vẫn làm được.theo mình biết thì phải dùng vòng lặp để lấy, dù dùng ado, dao hay mở file dạng ẩn để lấy. Nếu không dùng vòng lặp để lấy tên bảng thì các bảng đó ở file access.
sub get_wsname()
dim ws as worksheet
sheets("tonghop").range("a1:a1000").clear
for each ws in worksheets
if ws.name <> "tonghop" then
sheets("tonghop").[a1000].end(3).offset(1, 0).value = ws.name
end if
next
end sub