2013-04-23 2 views
0

워크 시트로 가져올 세미콜론으로 구분 된 파일 (* .asc이지만 텍스트 파일과 동일한 파일)이 100 개 이상 있습니다. 나는 매번 파일을 선택하고 필요에 따라 스크립트에서 폴더를 업데이트하는 것이 좋습니다. 나는 메뉴를 클릭하는 시간을 절약하려고하고있다."텍스트"파일에서 데이터를 가져 오는 중 오류가 발생했습니다.

파일을 성공적으로 선택할 수 있지만 .Refresh BackgroundQuery 줄 뒤에 "오류 104 Excel에서이 외부 데이터 범위를 새로 고치는 텍스트 파일을 찾을 수 없습니다."라는 메시지가 나타납니다.

내가 올바르게 참조하고 있지 않습니까?

Sub Macro2input() 
' 
' Macro2input Macro 
' 
' 
    Dim Start1 As Range 
    'Dim SourceCells As Range 
    'Dim DestinationCells As Range 
    'Dim NextStart As Range 
    Set Start1 = ActiveCell 
    Dim Finfo As String 
    Dim vFilename As Variant 
    Dim fileToOpen As Variant 

    rootDir = "X:\Lab Tests\13-7242\Re-run Calon\1-B" 
    Finfo = "All Files (*.*), *.*" 

    'Sets the default folder for selecting a file 
    ChDrive "X:" 
    ChDir rootDir 

    Filename = Application.GetOpenFilename(Finfo, 1, "Select A File To Import") 
    vFilename = rootDir & Filename 

    With ActiveSheet.QueryTables.Add(Connection:= _ 
     "TEXT;" + vFilename, Destination:=Start1) 
     .Name = Filename 
     .FieldNames = True 
     .RowNumbers = False 
     .FillAdjacentFormulas = False 
     .PreserveFormatting = True 
     .RefreshOnFileOpen = False 
     .RefreshStyle = xlInsertDeleteCells 
     .SavePassword = False 
     .SaveData = True 
     .AdjustColumnWidth = True 
     .RefreshPeriod = 0 
     .TextFilePromptOnRefresh = False 
     .TextFilePlatform = 932 
     .TextFileStartRow = 1 
     .TextFileParseType = xlDelimited 
     .TextFileTextQualifier = xlTextQualifierDoubleQuote 
     .TextFileConsecutiveDelimiter = False 
     .TextFileTabDelimiter = True 
     .TextFileSemicolonDelimiter = True 
     .TextFileCommaDelimiter = False 
     .TextFileSpaceDelimiter = False 
     .TextFileColumnDataTypes = Array(1) 
     .TextFileTrailingMinusNumbers = True 
     .Refresh BackgroundQuery:=False 
    End With 
ActiveCell.Offset(0, 8).Select 
End Sub 
+0

당신은 내 제안에 만족하지 않을 것이지만, 나는 정말로 의지 할 수없는'QueryTable'이 아니라 ADODB로 당신의 일을 할 것입니다. –

답변

0

지금 아주 좋은 VB의 마법시를 beeing는하지 않고 : 당신은 정말 확인하신 후이 vFilename의 오른쪽 파일 이름이며, 당신이 찾을 수 있는지 확인하고 사용할 수 있음 "vFilename = ROOTDIR & 파일 이름"과 라인 vFilename에있는 파일에 액세스하려면 (exccel-process)? 내가 생각하기에 rootDir과 Filename 사이에는 backslash가 없으므로 유효한 Filepath가 아닙니다.

+0

제안 해 주셔서 감사합니다. \을 추가했습니다. 같은 오류. 이전 반복에서 필자는 직접 파일 경로를 넣었지만 (동일한 오류가 발생했습니다), 이후 variant를 사용했습니다. – user2313127

0

내가 대신 Destination:=Range("A" & Lastrow)을 사용하십시오 Destination:=Start1.

에 문제가있다 생각합니다.

관련 문제