0
VBA에서해야 할 일이 있습니다. IDE를 열고 거기에서 예상대로 코드를 실행하면 txt 파일의 데이터가 새 임시 워크 북에로드됩니다 내 워크 시트에 붙이면 임시 워크 북을 닫습니다.파일에서 데이터를로드 할 때 Excel
하지만 Ctr + Sft + L과 같은 바로 가기를 사용하여 실행하면 임시 통합 문서에 데이터가로드되고 활성화되어 실행이 중지됩니다. 데이터를 다시 워크 시트에 붙여 넣지 않습니다. 이 문제를 어떻게 해결할 수 있습니까?
Sub Load_Text()
Dim wsSheet As Worksheet
InsertWorkSheet ("Data")
Set wsSheet = ThisWorkbook.Sheets("Data")
Workbooks.OpenText Filename:="C:\Documents and Settings\w059\Desktop\20121107_Report.txt", _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, _
Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), _
Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1)), TrailingMinusNumbers:=True
ActiveWorkbook.Worksheets(1).Cells.Copy wsSheet.Range("A1")
ActiveWorkbook.Close True
End Sub
Public Sub InsertWorkSheet(name As String)
Dim wsSheet As Worksheet
On Error Resume Next
Set wsSheet = ThisWorkbook.Sheets(name)
If wsSheet Is Nothing Then
ThisWorkbook.Sheets.Add After:=Sheets(Sheets.Count)
ThisWorkbook.Sheets(Sheets.Count).name = name
End If
End Sub
나는이 점을 놓치고으로
을 대체 : 이것은 수정? 매크로에서 붙여 넣기 명령을 볼 수 없습니다. 덧붙여, 통합 문서에 워크 시트를 삽입하면 자동으로 현재 워크 시트가되므로 ThisWorkbook.Sheets.Add 다음에 ActiveSheet.Name = Name을 사용할 수 있습니다. 또 다른 점은 인수와 변수의 이름에 NAME과 같은 예약어를 사용하지 마십시오. 이상한 오류가 발생할 수 있으므로 (이 매크로에서 가장 먼저 변경해야 할 사항) –
+1 @AndyBrown에 오신 것을 환영합니다 StackOverFlow : 여기에서 만나서 반갑습니다. [현명한 올빼미 블로그는 어떻게 운영됩니까?] (http://www.wiseowl.co.uk/blog/author/AndyBrown.htm)? – bonCodigo
@AndyBrown ActiveWorkbook.Worksheets (1) .Cells.Copy wsSheet.Range ("A1") – kooshka