WedX - журнал о программировании и компьютерных науках

Excel VBA для циклического просмотра рабочих листов в серии рабочих книг

У меня есть мастер-книга макросов, единственной целью которой является запуск макроса, который перебирает все рабочие книги в определенной папке, вносит кучу изменений, а затем сохраняет их в другой папке.

Все это работает, за исключением некоторого нового кода, в котором я хочу просмотреть все разные рабочие листы. Код просто продолжает выполнять код на первом рабочем листе снова и снова.

    Sub BlendBCoding()
    Dim Filename, Pathname As String
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim NameOfWorkbook
    Dim cel As Variant
    Dim myrange As Range

    Pathname = ActiveWorkbook.Path & "\ToProcess\"
    Filename = Dir(Pathname & "*.xml")
    Do While Filename <> ""
    Set wb = Workbooks.Open(Pathname & Filename)

    For Each ws In wb.Sheets

    Call DoWork(ws)

    Next

        NameOfWorkbook = Left(ActiveWorkbook.Name, (InStrRev(ActiveWorkbook.Name, ".", -1, vbTextCompare) - 1))
            ActiveWorkbook.SaveAs Filename:= _
        "I:\Common\BlendBCoding\Processed\" & NameOfWorkbook & ".xlsx", FileFormat _
        :=xlOpenXMLWorkbook, CreateBackup:=False

        wb.Close SaveChanges:=False
        Filename = Dir()
    Loop

End Sub

Sub DoWork(ws As Worksheet)
    With ws
        Range("A1:G1").EntireColumn.Insert
        Range("A1").Value = "Scan Components"
        Range("A1").ColumnWidth = 16
        //Blah Blah lots of standard text code cut

        Set myrange = Range("H1:H100")
        myrange.Interior.ColorIndex = xlNone
        For Each cel In myrange
        If Application.WorksheetFunction.CountIf(myrange, cel) > 1 Then
        cel.Interior.ColorIndex = 4
        End If
        Next

        'Set myrange = Range("H2:H25")
        'For Each xCell In myrange
        ' xCell.Value = CDec(xCell.Value)
        ' Next xCell

    End With
End Sub

Любая помощь приветствуется.

12.03.2015

Ответы:


1

Вы не указываете на диапазон в ws

используйте . заранее, иначе вместо этого вы имеете в виду ActiveSheet.

With ws
        .Range("A1:G1").EntireColumn.Insert
        .Range("A1").Value = "Scan Components"
        .Range("A1").ColumnWidth = 16
        //Blah Blah lots of standard text code cut

        Set myrange = .Range("H1:H100")
        myrange.Interior.ColorIndex = xlNone
        For Each cel In myrange
        If Application.WorksheetFunction.CountIf(myrange, cel) > 1 Then
        cel.Interior.ColorIndex = 4
        End If
        Next


End With
12.03.2015
  • Спасибо идеально. Я думал, что пробовал это, но в то время у меня были другие проблемы. 12.03.2015
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]