Ответ 1
Function MySheet()
' uncomment the below line to make it Volatile
'Application.Volatile
MySheet = Application.Caller.Worksheet.Name
End Function
Это должна быть функция, которую вы ищете
Я хотел бы создать функцию user-defined
в Excel
, которая может вернуть текущий рабочий лист. Я мог бы использовать
sheetname = ActiveSheet.Name
Но проблема с этим заключается в том, что она работает, и внезапно она начинает получать другое имя листа. Например, вместо SHEET I LOVE YOU
он возвращает SHEET I HATE YOU
.
Есть ли способ исправить это - или это возможно, потому что я думаю, что он не может быть статическим, но меняется?
Function MySheet()
' uncomment the below line to make it Volatile
'Application.Volatile
MySheet = Application.Caller.Worksheet.Name
End Function
Это должна быть функция, которую вы ищете
Sub FnGetSheetsName()
Dim mainworkBook As Workbook
Set mainworkBook = ActiveWorkbook
For i = 1 To mainworkBook.Sheets.Count
'Either we can put all names in an array , here we are printing all the names in Sheet 2
mainworkBook.Sheets("Sheet2").Range("A" & i) = mainworkBook.Sheets(i).Name
Next i
End Sub
Это работает для меня.
worksheetName = ActiveSheet.Name
Вы можете использовать приведенный ниже код, чтобы получить имя активного листа и изменить его на свое предпочтительное имя.
Sub ChangeSheetName()
Dim shName As String
Dim currentName As String
currentName = ActiveSheet.Name
shName = InputBox("What name you want to give for your sheet")
ThisWorkbook.Sheets(currentName).Name = shName
End Sub
Расширьте код для показа выбранных листов (одного или нескольких листов).
Sub Show_SelectSheet()
For Each xSheet In ThisWorkbook.Worksheets
For Each xSelectSheet In ActiveWindow.SelectedSheets
If xSheet.Name = xSelectSheet.Name Then
'=== Show Selected Sheet ===
GoTo xNext_SelectSheet
End If
Next xSelectSheet
xSheet.Visible = False
xNext_SelectSheet:
Next xSheet
MsgBox "Show Selected Sheet(s) Completed !!!"
end sub