Как назначить переменную на лист Excel с частично известным именем - PullRequest
0 голосов
/ 08 октября 2018

Может ли кто-нибудь помочь мне со следующим:

У меня проблема с "Set ch1 ="

Имя файла (или, скорее, последние несколько символов его имени меняются каждый день немного), таким образом, мне нужно добавить подстановочный знак (*) или что-то подобное.

Как мне сделать "Set ch1 =" с файлом, имя которого меняется?

Вот часть кода, который я разработал.

Option Explicit
Sub Open_Latest_Cheque()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Call Open_Latest_File

Dim ch1 As Workbook, AC As Workbook, temp As Workbook
Dim ch1ws As Worksheet, ACws As Worksheet
Dim ACwsLR As Long, tempName As String

**Set ch1 = Workbooks("Sum100123.csv")**
Set ch1ws = ch1.Sheets(1)
Set AC = Workbooks("Mon.xlsm")
Set ACws = AC.Sheets("Data")

Dim MyPath  As String, MyFile  As String, LatestFile  As String
Dim LatestDate  As Date, LMD  As Date.............

Спасибо

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Попробуйте это:

Sub test_partial_name()

Dim pt_nm As Workbook

For Each pt_nm In Application.Workbooks
   If (pt_nm.Name) Like "Sum1#123.csv" Then
Exit For
End If

Next pt_nm
   If Not pt_nm Is Nothing Then
   pt_nm.Activate
Else
MsgBox "The file has not opened!"
End If

With Sheets(1)

Cells(1, 1).Value = "its working? Yes"

End With
0 голосов
/ 08 октября 2018

Способ сделать это - циклически просмотреть коллекцию книг с помощью For Each wkb in Workbooks и проверить имя каждой итерированной книги с помощью Like.Там вы можете использовать *, #, ? и т. Д. (См. Скриншот).Как только вы найдете то, что вам нужно, назначьте его на wbkSpecific и выйдите из коллекции с помощью Exit For:

Sub TestMe()

    Dim wkb As Workbook
    Dim wkbSpecific As Workbook

    For Each wkb In Workbooks
        If wkb.Name Like "Sum1*???.csv" Then
            Set wkbSpecific = wkb
            Exit For
        End If
    Next wkb

    If Not wkbSpecific Is Nothing Then
        MsgBox wkbSpecific.Name
    End If

End Sub

enter image description here

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