실례합니다: vba, excel에서 여러 개의 xls 파일을 열고 문자열을 검색하여 다른 sheet에 쓰는 문제

목적: 사무용 문구의 sheet를 열고'@yahoo'의 문자열(@yahoo.com, @yahoo.cn 등 포함)을 검색하여 이 칸의 내용을 새 sheet로 복사합니다.사무용 문구 시트 전체가 검색될 때까지.Sub 매크로 1() 매크로 1 Macro Sheets(사무 문구).Select  Sheets.Add.Name = "bak13"Sheets(사무 문구).Select  Range("B1").Select  Cells.Find(What:="@yahoo", After:=ActiveCell, LookIn:=xlFormulas, LookAt _  :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _  False).Activate  'Range("B13").Select  'Selection.Copy  'Sheets("bak2").Select  'ActiveSheet.Paste  'Range.Next'Sheets("사무 문구").Select  'Application.CutCopyMode = False  'Cells.FindNext(After:=ActiveCell).Activate'While Cells.Text <> Null  Selection.Copy  Sheets("bak13").Select      'ActiveSheet.ActiveCell.      ActiveSheet.Paste  ActiveCell.Next <---문제는 여기 Sheets("사무용 문구")입니다.Select  Application.CutCopyMode = False  Cells.FindNext(After:=ActiveCell).Activate'Cells.Find.'Wend End Sub에는 또 다른 문제가 있습니다. 만약 어떤 디렉터리에 여러 개의 xls 파일('사무 문구.xls'파일 포함)이 있다면, 모든 파일에 sheet가 있습니다. 상황은'사무 문구sheet'와 유사합니다.실례합니다: 어떻게 모든 xls 파일을 번갈아 열고 그 중의 sheet에서 "@yahoo"조건에 부합되는 단원 글리의 내용을 "bak13"이라는 sheet에 복사할 수 있습니까?
 
--------------------
안녕하십니까? 저는 기본적으로 당신이 말한 기능을 실현할 수 있는 프로그램을 썼지만, 당신의 현재 코드와 약간 차이가 있습니다
참조:
다음 코드에서 완성된 기능은sheet1에서 @yahoo를 찾은 다음copy에서sheet2에 있는 것입니다.테스트를 해봤는데 사용할 수 있어요.
VBScript code

     
     
     
     
Sub FindStrings() Dim firstCell, nextCell, stringToFind As String Dim nCursor As Integer stringToFind = " @yahoo " nCursor = 1 nextCell = "" Sheet1.Select Range( " A1 " ).Select Range( " A1 " ).Activate Set firstCell = Cells.Find(What: = stringToFind, After: = ActiveCell, LookIn: = xlFormulas, LookAt _ : = xlPart, SearchOrder: = xlByRows, SearchDirection: = xlNext, MatchCase: = _ False ) If firstCell Is Nothing Then MsgBox " Search Value Not Found. " , vbExclamation Else Sheet2.Cells( 1 , nCursor).Value = firstCell nCursor = nCursor + 1 Do While firstCell.Address <> nextCell If nextCell = "" Then nextCell = firstCell.Address End If nextCell = Cells.FindNext(After: = Range(nextCell)).Address If firstCell.Address <> nextCell Then Sheet2.Cells( 1 , nCursor).Value = Range(nextCell).Value nCursor = nCursor + 1 End If Loop End If End Sub -----------------------

     
     
     
     
> : xls , sheet "@yahoo" , "bak13" > sheet ?
, xls


VBScript code

        
        
        
        
Dim path As String path = " d:/work " FileName = Dir(path & " /*.xls " ) FileName = path & " / " & FileName Do While FileName <> " d:/work/ " ...... FileName = Dir FileName = path & " / " & FileName Loop
-----------
http://topic.csdn.net/u/20080414/12/37f8af2d-9b74-495a-b14f-24b6e3f9496f.html

좋은 웹페이지 즐겨찾기