Поиск динамической переменной в списке VBA - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь найти значение переменной (MonthCell) в другой книге. Переменная, которую я пытаюсь найти, находится в списке. Когда я запускаю приведенный ниже код, переменная Month остается пустой, даже если должно быть совпадение. Что я делаю не так?

Sub CreateAList()

Dim ws As Worksheet
Dim wb As Workbook
Dim LastRow As Long
Dim coll As Collection
Dim Hotel As Excel.Range
Dim arr() As String
Dim i As Long
Dim MyFiles As String, ThisMonth As String
Dim startPath As String
Dim WhereCell As Range
Dim Month As Range

Set ws = Application.Workbooks("Booking Pace - Test 
Tool.xlsm").Sheets("Forecast") startPath = 
"C:\Users\gborner\Documents\Projects\"

With ws
LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
Set coll = New Collection
For Each Hotel In .Range("A6:A" & LastRow)
    On Error Resume Next
    coll.Add cell.Value, CStr(cell.Value)
    On Error GoTo 0

    Set WhereCell = ThisWorkbook.ActiveSheet.Range("A6:A200").Find(Hotel, 
    LookAt:=xlPart)
    Set MonthCell = ThisWorkbook.ActiveSheet.Range("B3")

    MyFiles = Dir(startPath & "*" & Hotel & "*.*")

    'Do While MyFiles <> ""

        On Error Resume Next
    Application.AskToUpdateLinks = False
    Application.DisplayAlerts = False
    Workbooks.Open startPath & MyFiles

    Set Month = ThisWorkbook.Sheets("Budget").Find(MonthCell, 
    LookIn:=xlValues)

1 Ответ

1 голос
/ 19 марта 2019

Приведенный ниже код зацикливает все листы и ищет переменную с именем SearchValue.В конце заполните окно сообщения всеми соответствующими соответствиями.

Код:

Option Explicit

Sub test()

    Dim ws As Worksheet
    Dim SearchValue As String, FullReport As String
    Dim Position As Range

    SearchValue = "Test"

    For Each ws In ThisWorkbook.Worksheets

        Set Position = ws.UsedRange.Find(SearchValue)

        If Not Position Is Nothing Then
            If FullReport = "" Then
                FullReport = "The word " & SearchValue & " appears in " & ws.Name & ", " & "Column " & Position.Column & " and row " & Position.Row & "."
            Else
                FullReport = FullReport & vbNewLine & "The word " & SearchValue & " appears in " & ws.Name & ", " & "Column " & Position.Column & " and row " & Position.Row & "."
            End If
        End If

    Next ws

    MsgBox FullReport

End Sub

Результаты:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...