2013-10-11 20 views
8

Tôi muốn tạo một hàm user-defined trong Excel có thể trả về trang tính hiện tại. Tôi có thể sử dụng số điện thoạiLấy tên trang tính bằng cách sử dụng Excel VBA

sheetname = ActiveSheet.Name 

Nhưng vấn đề là nó hoạt động và đột nhiên nó bắt đầu có tên trang tính khác. Ví dụ: thay vì SHEET I LOVE YOU, nó trả về SHEET I HATE YOU.

Có cách nào để sửa lỗi này - hoặc có thể vì tôi cho rằng nó không thể tĩnh nhưng khác nhau?

Trả lời

24
Function MySheet() 

    MySheet = Application.Caller.Worksheet.Name 

End Function 

này cần được các chức năng bạn đang tìm kiếm

+1

Cảm ơn rất nhiều - nó hoạt động tuyệt vời - thực sự đánh giá cao - nó giúp tôi rất nhiều khi thực hiện VLOOKUP – user2103670

+1

nó được một cái cớ tốt cho tôi để tìm hiểu một thủ thuật mới với VBA :) – mucio

+2

Nhu cầu là dễ bay hơi –

-1

Bạn có thể sử dụng mã dưới đây để có được tên Bảng hoạt động và thay đổi nó để bạn ưa thích tên.

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 
2
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 
0

này làm việc cho tôi.

worksheetName = ActiveSheet.Name 
Các vấn đề liên quan