getsheetbyId можно использовать для доступа к скрытому листу, но для этого требуется идентификатор листа.
Например:
ActiveDocument.GetSheetByID("SH03");
Как получить идентификатор скрытого листа, соответствующий каждому скрытому листу в Документ qlikview.
Qlikview: информация о скрытых листах
Ответы (1)
После некоторых исследований стало ясно, что вы не можете получить доступ к скрытым листам (т. е. листам с установленным условием видимости) с помощью макроса QlikView. Насколько я могу судить, это связано с моделью безопасности QlikView.
Если лист виден, вы можете получить доступ к идентификатору листа следующим образом (например, для активного листа):
ActiveDocument.ActiveSheet.GetProperties.SheetID
Это даст вам строку с идентификатором в формате Document\<sheet id>
, например, Document\SH01
.
Если вы хотите преобразовать это только в идентификатор, вы можете использовать это:
fullShtID = ActiveDocument.ActiveSheet.GetProperties.SheetID
shtID = mid(fullShtID,instr(fullShtID,"\")+1)
shtID
даст вам только SH01
и т. д.
Однако для «скрытых» листов самым простым способом было бы установить условие видимости листов на переменную, а затем изменить переменную из кода макроса. Это позволит вам отобразить «скрытый» лист, записать идентификатор (как указано выше), а затем вы можете снова скрыть его, установив переменную. Помимо этого обходного пути, нет прямого способа сделать это.