2014-10-03 3 views
-1

이 VBA 2007 코드는 작업을 수행하지만 첫 번째 워크 시트에만 적용되며 워크 북의 나머지 워크 시트에는 반복되지 않습니다 (여기서 값을 찾고 다시 오류가 발생 함). 첫 번째 시트에는 없지만 그렇지 않아야합니다). 누구든지 조언을 해줄 수 있습니까? 나는 그것이 여전히 작동하지 않습니다이 있지만 같이해야한다고 생각코드가 워크 시트를 통해 반복적으로 반복하지 않음

Set sourcewb = Workbooks.Open(Filename:=direccionArchivo) 
chakal = sourcewb.Index 
       guapo = sourcewb.Worksheets.Count 
       For z = chakal To guapo 
        Set ws = Sheets(z) 
         sourcewb.Columns(1).Value = Application.WorksheetFunction.Clean(sourcewb.Columns(1)) 
         Set gCell = ws.Columns("A").Find(what:=IDPEDIDO, LookIn:=xlValues, lookat:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, searchformat:=False) 

          If Not gCell Is Nothing Then 
           'OTHER CODE NOT DISPLAYED 
          end if 
         Next z 

        Set gCell = Nothing 
+0

오류가 없습니까? sourcewb.columns (1)에 오류가 있어야합니다. 통합 문서에는 열이 없습니다. 이것은 몇 군데에서 ws.columns (1)이어야합니다. – Barry

+0

ok, 아마도 이것은 for (다른 for의 내부)에서 작동 할 것입니다. – Chakal

+0

또한 chakal이 1이어야한다고 생각합니다. 이제는 workBOOK의 인덱스로 설정되며 chakal이 시트를 반복하는 데 사용되는 경우 이해가되지 않습니다. z = 1 ~ sourcewb.worksheets.count. – Barry

답변

0

대단히 감사합니다.

Set sourcewb = Workbooks.Open(Filename:=direccionArchivo) 
chakal = 1 
guapo = sourcewb.Worksheets.Count 
For z = chakal To guapo 
    Set ws = sourcewb.Sheets(z) 

    'This will not work, clean expects a string not a range (a column is a range) 
    ws.Columns(1).Value = Application.WorksheetFunction.Clean(ws.Columns(1)) 


    Set gCell = ws.Columns("A").Find(what:=IDPEDIDO, LookIn:=xlValues, lookat:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, searchformat:=False) 

    If Not gCell Is Nothing Then 
     'OTHER CODE NOT DISPLAYED 
    end if 
Next z 
Set gCell = Nothing 
0

먼저 전체 정리 기능이 작동하지 않습니다. 열의 각 셀을 반복하고 worksheetfunction.clean (cell.value)을 사용해야합니다. 두 번째로 workbook.worksheets.range 인 워크 시트에 올바른 개체 모델을 사용하지 않았습니다. 귀하의 코드가 다음과 같이 수정되었습니다 :

Sub t() 
Dim sourcewb As Workbook 
Dim ws As Worksheet 

Set sourcewb = Workbooks.Open(Filename:=direccionArchivo) 
      guapo = sourcewb.Worksheets.Count 
      For Z = 1 To guapo 
       Set ws = sourcewb.Sheets(Z) 
        endrow = ws.Cells(Rows.Count, 1).End(xlUp).Row 
         For Each cell In ws.Range(ws.Cells(1, 1), ws.Cells(endrow, 1)) 
          WorksheetFunction.Clean (cell) 
         Next cell 
        Set gCell = ws.Columns("A").Find(what:=IDPEDIDO, LookIn:=xlValues, lookat:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, searchformat:=False) 

         If Not gCell Is Nothing Then 
          'OTHER CODE NOT DISPLAYED 
         End If 
        Next Z 

       Set gCell = Nothing 
End Sub