- Katılım
- 11 Mart 2005
- Mesajlar
- 3,110
- Excel Vers. ve Dili
- Office 2013 İngilizce
Arkadaşlar Merhaba;
Aşaıdaki kodlar ile kapalı bir dosya içerisindeki sheet adlarını yazdırıyorum,
Yalnız bu kodlar Excel-2003 te sorunsuz çalışırken Excel-2007 de çalışmıyor, yani sheet adları gelmiyor.
Yardımlarınızı bekliyorum.
iyi çalışmalar.
Aşaıdaki kodlar ile kapalı bir dosya içerisindeki sheet adlarını yazdırıyorum,
Yalnız bu kodlar Excel-2003 te sorunsuz çalışırken Excel-2007 de çalışmıyor, yani sheet adları gelmiyor.
Yardımlarınızı bekliyorum.
iyi çalışmalar.
Kod:
Function GetShNames(WBName As String) As Collection
Dim objConn As ADODB.Connection
Dim objCat As ADOX.Catalog
Dim tbl As ADOX.Table
Dim sConnString As String
Dim sSheet As String
Dim Col As New Collection
On Error GoTo 20
sConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & WBName & ";" & _
"Extended Properties=Excel 8.0;"
Set objConn = New ADODB.Connection
objConn.Open sConnString
Set objCat = New ADOX.Catalog
Set objCat.ActiveConnection = objConn
For Each tbl In objCat.Tables
sSheet = tbl.Name
sSheet = Application.Substitute(sSheet, "'", "")
sSheet = Left(sSheet, InStr(1, sSheet, "$", 1) - 1)
On Error Resume Next
Col.Add sSheet
On Error GoTo 0
Next tbl
Set GetShNames = Col
objConn.Close
Set objCat = Nothing
Set objConn = Nothing
20:
End Function