참조해야 할 것이 있습니까? 어떻게 사용합니까?
Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
이러한 개체를 인식하지 못하기 때문에 오류가 발생합니다.
참조해야 할 것이 있습니까? 어떻게 사용합니까?
Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream
이러한 개체를 인식하지 못하기 때문에 오류가 발생합니다.
답변:
Excel 내에서 VB 스크립트 런타임 라이브러리에 대한 참조를 설정해야합니다. 관련 파일은 일반적으로 다음 위치에 있습니다.\Windows\System32\scrrun.dll
Microsoft Scripting Runtime
' 옆의 확인란을 선택하십시오.scrrun.dll
파일 의 전체 이름과 경로가 목록 상자 아래에 표시됩니다.VBA 개체 모델에 대한 액세스가 활성화 된 경우 코드에서 직접 수행 할 수도 있습니다.
액세스 체크 박스 똑딱으로 활성화 할 수 있습니다 Trust access to the VBA project object model
에서 찾을 > 옵션> 보안 센터> 보안 센터 설정> 매크로 설정 파일을
참조를 추가하려면 :
Sub Add_Reference()
Application.VBE.ActiveVBProject.References.AddFromFile "C:\Windows\System32\scrrun.dll"
'Add a reference
End Sub
참조를 제거하려면 :
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에서 개체 생성 문자열은 다음과 같습니다.
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
위 답변의 코드 대신 :
Dim fs,fname
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Dim fso As Object
이 사람들은 http://www.w3schools.com/asp/asp_ref_filesystem.asp 파일 시스템 객체를 사용하는 방법에 대한 훌륭한 예를 가지고 있습니다 .
<%
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
%>
위에서 설명한대로 스크립팅 런타임을 가져온 후 Excel 2010 (내 버전)에서 작동하도록 약간 수정해야합니다. 다음 코드에 사용자가 파일을 선택하는 데 사용하는 코드도 추가했습니다.
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
도움이 되었기를 바랍니다.
친애하는
파비오