VBA - Макрос для открытия файла на основе части текста в ячейке - PullRequest
0 голосов
/ 08 апреля 2020

Я пытался адаптировать макрос, который использовал для открытия файлов, на которые есть ссылки в электронной таблице Excel. Тем не менее, на этот раз перед ссылкой в ​​электронной таблице стоит предисловие «work_», за которым сразу следует имя файла, например: work_1234. Я почти уверен, что мне нужно что-то изменить в той части кода, которая выделена жирным шрифтом, но я не знаю, как это сделать. Адаптируйте ActiveCell.Text, чтобы использовать только цифры в качестве информации, необходимой для поиска в каталогах.

Dim directories(10) As String, fileName As String, i As Integer

directories(0) = "Users/username/folder/subfolder/goal/"
directories(1) = "Users/username/folder/subfolder/goal/1"
directories(2) = "Users/username/folder/subfolder/goal/2"
directories(3) = "Users/username/folder/subfolder/goal/3"
directories(4) = "/Users/username/folder/subfolder/goal/4"

i = 0

Do While i < 5

    If ActiveCell.Text() = "" Then
        Exit Do
    End If

'look for the numbers in the active cell that will be used when searching the folders listed above'  
    **fileName = Dir(directories(i) & "*" & ActiveCell.Text() & "*", MacID("Macintosh HD"))**
'fileName = "Users/username/folder/subfolder/goal/1234.html"'
    If fileName <> "" Then
        CreateObject("Shell.Application").Open (fileName) 'directories(i) & fileName)
        fileName = Dir()
        Exit Do
    End If
    i = i + 1
Loop

End Sub

Я надеюсь, что смог передать то, что я пытаюсь сделать, и был бы очень благодарен за любые идеи, которые вы могли бы дать мне, чтобы помочь мне с этим. Я не очень знаком с VBA, и после того, как я покопался в паутине на предмет того, что ощущается навсегда, я решил проверить здесь, чтобы найти какую-то помощь!

1 Ответ

0 голосов
/ 10 апреля 2020

добро пожаловать в SO. Вы можете получить значение ячейки следующим образом:

MyValue = Worksheets("Sheet1").Range("C2").Value
MyValue = Worksheets("Sheet1").Cells(2,3).Value

Далее вы можете сделать следующее:

AnotherValue = Right(MyValue,Len(MyValue)-Len("work_"))

Чтобы быстро начать работать с VBA, попробуйте, например, эти бесплатные курсы : https://homeandlearn.org/ или https://www.excel-pratique.com/en/ Удачи!

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