Можете ли вы ссылаться на переменную в книге без расширения?

По какой-то причине мои номера версий смешались, и в какой-то момент я четко установил более позднюю версию времени исполнения композитора (то есть версию 0.19.12), чем сервер REST-композитора (то есть версия 0.19.5). Необходимо переустановить, чтобы номера версий были одинаковыми.

3
задан Pᴇʜ 21 January 2019 в 07:45
поделиться

3 ответа

Вы можете просмотреть все открытые книги:

Public sub GetWB(byval wb_name as string) as excel.workbook
Dim wbkCurr as excel.workbook 

Set getwb=nothing 
For each wbkCurr in application.workbooks
    If lower(left(wbkCurr.name, instr(wbkCurr.name,”.”))) = lcase(wb_name) then
        Set getwb = wbkCurr
    Endif
Next wbkCurr 

End function 

Вызвать его с помощью set wb = getwb (wb_name)

Просто проверьте, что wb все еще ничто, прежде чем продолжить [113 ]

0
ответ дан wallyeye 21 January 2019 в 07:45
поделиться

Вы можете использовать групповой подход.

Dim wb_name as String
wb_name = Range("A1").Value & ".****"
Set wb = Workbooks(wb_name)
0
ответ дан urdearboy 21 January 2019 в 07:45
поделиться

Вы можете использовать регистр выбора, чтобы определить версию и расширение / формат файла Excel

    If Val(Application.Version) < 12 Then
        'You use Excel 97-2003
        FileExtStr = ".xls": FileFormatNum = -4143
    Else
        'You use Excel 2007-2016
        Select Case wb.FileFormat
        Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
        Case 52:
            If .HasVBProject Then
                FileExtStr = ".xlsm": FileFormatNum = 52
            Else
                FileExtStr = ".xlsx": FileFormatNum = 51
            End If
        Case 56: FileExtStr = ".xls": FileFormatNum = 56
        Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
        End Select
    End If

Вот 2 примера

Использование VBA SaveAs в Excel 2007-2016 - Рон де Брюин Excel Automation

https://stackoverflow.com/a/30393989/4539709

0
ответ дан 0m3r 21 January 2019 в 07:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: