Referans vermem gereken bir şey var mı? Bunu nasıl kullanırım:
Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
Bu nesneleri tanımadığı için bir hata alıyorum.
Referans vermem gereken bir şey var mı? Bunu nasıl kullanırım:
Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
Bu nesneleri tanımadığı için bir hata alıyorum.
Yanıtlar:
Excel içinde, VB komut dosyası çalışma zamanı kitaplığına bir başvuru ayarlamanız gerekir. İlgili dosya genellikle şu adreste bulunur:\Windows\System32\scrrun.dll
Microsoft Scripting Runtime
' Yanındaki onay kutusunu işaretleyinscrrun.dll
Dosyanın tam adı ve yolu liste kutusunun altında görüntülenecektir.VBA nesne modeline erişim etkinleştirildiyse, bu doğrudan kodda da yapılabilir.
Dosya> Seçenekler> Güven Merkezi> Güven Merkezi Ayarları> Makro Ayarları'ndaTrust access to the VBA project object model
bulunan onay kutusu işaretlenerek erişim etkinleştirilebilir.
Bir referans eklemek için:
Sub Add_Reference()
Application.VBE.ActiveVBProject.References.AddFromFile "C:\Windows\System32\scrrun.dll"
'Add a reference
End Sub
Bir referansı kaldırmak için:
Sub Remove_Reference()
Dim oReference As Object
Set oReference = Application.VBE.ActiveVBProject.References.Item("Scripting")
Application.VBE.ActiveVBProject.References.Remove oReference
'Remove a reference
End Sub
Excel 2013'te nesne oluşturma dizesi şöyledir:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
yukarıdaki yanıttaki kod yerine:
Dim fs,fname
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Dim fso As Object
Bu adamların http://www.w3schools.com/asp/asp_ref_filesystem.asp dosya sistemi nesnesinin nasıl kullanılacağına dair mükemmel örnekleri var
<%
dim fs,fname
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fname=fs.CreateTextFile("c:\test.txt",true)
fname.WriteLine("Hello World!")
fname.Close
set fname=nothing
set fs=nothing
%>
Referansı ekledikten sonra kullanmak zorunda kaldım
Dim fso As New Scripting.FileSystemObject
Komut dosyası çalışma zamanını yukarıda açıklandığı gibi içe aktardıktan sonra, Excel 2010'da (benim sürümüm) çalışmasını sağlamak için küçük değişiklikler yapmanız gerekir. Aşağıdaki koda, kullanıcıya bir dosya seçmek için kullanılan kodu da ekledim.
Dim intChoice As Integer
Dim strPath As String
' Select one file
Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
' Show the selection window
intChoice = Application.FileDialog(msoFileDialogOpen).Show
' Get back the user option
If intChoice <> 0 Then
strPath = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Else
Exit Sub
End If
Dim FSO As New Scripting.FileSystemObject
Dim fsoStream As Scripting.TextStream
Dim strLine As String
Set fsoStream = FSO.OpenTextFile(strPath)
Do Until fsoStream.AtEndOfStream = True
strLine = fsoStream.ReadLine
' ... do your work ...
Loop
fsoStream.Close
Set FSO = Nothing
Umarım yardımcı olur!
Saygılarımla
Fabio