programing

Excel VBA를 사용하여 워크시트 이름 가져오기

telecom 2023. 6. 14. 21:41
반응형

Excel VBA를 사용하여 워크시트 이름 가져오기

다음을 만들고 싶습니다.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

이것이 당신이 찾고 있는 기능이어야 합니다.

이것은 나에게 효과가 있습니다.

worksheetName = ActiveSheet.Name  
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

선택한 시트 표시에 대한 코드 확장 [하나 이상의 시트]입니다.

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

아래 코드를 사용하여 활성 시트 이름을 가져오고 원하는 이름으로 변경할 수 있습니다.

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 Get_Data_From_File5()
    Dim FileToOpen As Variant
    Dim OpenBook As Workbook
    Dim currentName As String
    currentName = ActiveSheet.Name
    Application.ScreenUpdating = False
    FileToOpen = Application.GetOpenFilename(Title:="Browse for your File & Import Range", FileFilter:="Excel Files (*.csv*),*csv*")
    If FileToOpen <> False Then
        Set OpenBook = Application.Workbooks.Open(FileToOpen)
        OpenBook.Sheets(1).Range("A1:g5000").Copy
        ThisWorkbook.Worksheets(currentName).Range("Aw1:bc5000").PasteSpecial xlPasteValues
        OpenBook.Close False
       
        
    End If
    Application.ScreenUpdating = True
End Sub

언급URL : https://stackoverflow.com/questions/19323343/get-a-worksheet-name-using-excel-vba

반응형