Jika saya memiliki objek Range - misalnya, katakanlah objek tersebut merujuk ke sel A1
pada lembar kerja yang disebut Book1
. Jadi saya tahu bahwa memanggil Address()
akan mendapatkan referensi lokal yang sederhana: $A$1
. Saya tahu itu juga bisa dipanggil sebagai Address(External:=True)
untuk mendapatkan referensi termasuk nama buku kerja dan nama lembar kerja: [Book1] Sheet1!$A$1
.
Apa yang saya inginkan adalah mendapatkan alamat termasuk nama lembar kerja, tetapi bukan nama buku. Saya benar-benar tidak ingin memanggil Address(External:=True)
dan mencoba menghapus nama buku kerja sendiri dengan fungsi string. Apakah ada panggilan yang bisa saya lakukan pada range untuk mendapatkan Sheet1!$A$1
?
Satu-satunya cara yang dapat saya pikirkan adalah menggabungkan nama lembar kerja dengan referensi sel, sebagai berikut:
Dim cell As Range
Dim cellAddress As String
Set cell = ThisWorkbook.Worksheets(1).Cells(1, 1)
cellAddress = cell.Parent.Name & "!" & cell.Address(External:=False)
EDIT:
Ubah baris terakhir menjadi:
cellAddress = "'" & cell.Parent.Name & "'!" & cell.Address(External:=False)
jika anda ingin ia bekerja bahkan jika ada spasi atau karakter lucu lainnya dalam nama sheet.
Ben benar. Saya juga tidak bisa memikirkan cara untuk melakukan ini. Saya menyarankan metode yang direkomendasikan Ben, atau yang berikut ini untuk menghapus nama Workbook.
Dim cell As Range
Dim address As String
Set cell = Worksheets(1).Cells.Range("A1")
address = cell.address(External:=True)
address = Right(address, Len(address) - InStr(1, address, "]"))
[edit pada 2009-04-21]
rentang tertentu (oleh karena itu .Name anyone?) Ya, oops!
[/edit]
Sedikit terlambat, saya tahu, tetapi jika ada orang lain yang menemukan ini dalam pencarian google (seperti yang baru saja saya lakukan), Anda juga bisa mencoba yang berikut ini:
Dim cell as Range
Dim address as String
Set cell = Sheet1.Range("A1")
address = cell.Name
Ini akan mengembalikan alamat lengkapnya, seperti "=Sheet1!$A$1".
Dengan asumsi Anda tidak menginginkan tanda sama dengan, Anda dapat menghapusnya dengan fungsi Replace:
address = Replace(address, "=", "")