web-dev-qa-db-fra.com

Obtenir un nom de feuille de calcul en utilisant Excel VBA

Je voudrais créer un user-defined fonction dans Excel pouvant renvoyer la feuille de calcul en cours. Je pourrais utiliser le

sheetname = ActiveSheet.Name

Mais le problème, c’est que cela fonctionne et, tout à coup, le nom de la feuille commence à être différent. Par exemple, au lieu de SHEET I LOVE YOU il retourne SHEET I HATE YOU.

Y a-t-il un moyen de résoudre ce problème - ou cela pourrait être possible parce que je pense que cela ne peut pas être statique mais varie?

11
user2103670
Function MySheet()

   MySheet = Application.Caller.Worksheet.Name

End Function

Cela devrait être la fonction que vous recherchez

30
mucio
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
6
josef

Cela fonctionne pour moi.

worksheetName = ActiveSheet.Name  
5
moberme

Vous pouvez utiliser le code ci-dessous pour obtenir le nom de la feuille active et le changer pour votre nom préféré.

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
0
Rohit Pal

Étendre le code pour afficher la ou les feuilles sélectionnées [une ou plusieurs feuilles].

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
0
ChaCha CJ Rune