Assalamu'alaikum Wr. Wb.

mas Zain,

Nama aslinya adalah defined names. Ketika yang dirujuk oleh defined names
adalah suatu range, maka defined names tersebut bisa juga disebut named
range (nama range kalo lidah londo indonesia).

*Nilai dalam suatu defined names* bisa *diambil dengan *memanfaatkan
*Evaluate*.
Contoh :
dim vNilai as variant
vnilai=evaluate( "=myDefinedNames" )

Kondisi *defined names merujuk ke suatu range*, maka *object* *range *yang
dirujuk defined range bisa *diambil dengan menyebutkan nama defined names
nya.*
Contoh :
debug.print *Range( "myDefinedNames" )*.value
menuntut bahwa myDefinedNames harus dirujuk ke suatu object range tertentu.
Cara diatas akan *mengambil si object range *lalu melihat isi properti
bernama Value.

Jadi, nilai yang didapat ketika memanggil range dengan menyebut defined
names-nya adalah hasil kerja object range melalui properti value milik
object range dan bukan karena defined names-nya.

Properti value milik defined names berisi definisi rujukan untuk defined
names tersebut dan menggunakan bahasa formula Excel yang diawali dengan
karakter sama dengan.


Kasus :
myNameA dirujuk dengan bunyi   =sheet1!$a$1        -> anggap saja di sheet1
cell a1 berisi nilai 123
myNameB dirujuk dengan bunyi   =456

> Pakai evaluate untuk ambil nilai data (bukan nilai definisi rujukan) yang
disimpan oleh defined names
debug.print evaluate( "=mynamea" )   'atau evaluate( "mynamea" ) [tanpa
sama dengan]
#hasilnya : 123
**myNameA merujuk ke range di sheet1 pada cell A1. Berhubung berupa object,
maka si evaluate mendatangi range A1 di sheet1 kemudian permisi akan
melihat isi properti value milik si object range a1 tersebut.

debug.print evaluate( "=mynameb" )
#hasilnya : 456
**myNameB merujuk ke suatu nilai konstanta. Berhubung berupa sebuah nilai
konstanta, maka si evaluate langsung meminta ijin kepada object defined
names untuk mengevaluasi rujukan yang disimpan oleh si defined names
bernama myNameB.

> Pakai properti value object range
debug.print *range*( "mynamea" ).value
#hasilnya : 123
**myNameA merujuk ke range di sheet1 pada cell A1. Berhubung berupa object,
maka si *range *(yang bekerja) memeriksa dulu apakah object-nya bertipe
object range. Jika ya, maka si *range *akan mendatangi range A1 di sheet1
kemudian permisi akan melihat isi properti value milik si object range a1
tersebut.

debug.print range( "mynameb" ).value
#hasilnya runtime error sekiun gitu (mestinya runtime error ya.... moga2
gak kliru)
**myNameB merujuk ke suatu nilai konstanta. Berhubung berupa sebuah nilai
konstanta, maka si *range *(yang bekerja) memeriksa dulu apakah object-nya
bertipe object range. Ternyata bukanlah sebuah object range, maka si *range
*bingung dan panik. Jalan keluar yang menurut si  akan membawanya selamat
adalah mengatakan secara jujur bahwa si range tidak bisa berbuat apa-apa
karena gak punya wewenang (kalo ndak salah run time errornya tentang
ketidak mampuan si object range untuk mengerjakan baris itu. biasanya kalau
yang ndak mampu-ndak mampu begini error runtime 1004)

> iseng pakai properti Value milik si defined names
debug.print names("myNameA").value
#hasilnya : =sheet1!$a$1
**myNameA merujuk ke range di sheet1 pada cell A1. Si object Names mencari
defined name bernama 'myNameA' lalu melihat isi properti value dan
menampikkannya

debug.print names("myNameB").value
#hasilnya : =456
**myNameB merujuk ke suatu nilai konstanta. Si object Names mencari defined
name bernama 'myNameB' lalu melihat isi properti value dan menampilkannya



hehehhe....
jadi untuk baris :
       MsgBox "Nilai [RangeKedua]: " & 0 + Mid(Names("RangeKedua").Value,
2, 99)
bisa dibayangkan hasilnya jika defined name bernama 'RangeKedua' merujuk ke
suatu object range tertentu atau ke suatu nilai konstanta yang bertipe data
text

;)

Wassalamu'alaikum Wr. Wb.
Kid.










2014-11-07 13:40 GMT+11:00 'zainul_ulum[at]yahoo[dot]com'
zainul_u...@yahoo.com [belajar-excel] <belajar-excel@yahoogroups.com>:

>
>
> Rekan be-excelers,
>
> Saya mempunyai vba code seperti berikut:
> '=============================
> Sub TestNameRange()
> 'A. Tes Pertama
> 'A.1. Mengisi nilai di [A1]
> Range("A1").Value = 123456
>
> 'A.2. Mebuat named range [RangePertama]
> Range("A1").Name = "RangePertama"
>
> 'A.3. Mengambil nilai dari [RangePertama]
> MsgBox "Nilai [RangePertama]: " & Range("RangePertama").Value
>
> 'B. Tes Kedua
> 'B.1. Membuat name range [RangeKedua] dan mengisi dengan nilai constant
> Dim sName As Name
> Set sName = Names.Add("RangeKedua", "789")
> 'B.2. mengambil nilai dari [RangeKedua]
> 'ERRORNYA TUH DI SINI....:::
> MsgBox "Nilai [RangeKedua]: " & Range("RangeKedua").Value
> End Sub
> '====================================
>
> Errornya bisa hilang jika saya menggunakan code:
>
> MsgBox "Nilai [RangeKedua]: " & 0 + Mid(Names("RangeKedua").Value, 2, 99)
>
> Mohon penjelasannya kenapa error tersebut bisa muncul?
>
> terimakasih
> -zainul
>
>  
>
  • [bela... Ahmad Syaifullah Lubis syaiful...@hotmail.com [belajar-excel]
    • ... Nang Agus nanga...@gmail.com [belajar-excel]
      • ... Nang Agus nanga...@gmail.com [belajar-excel]
        • ... Ahmad Syaifullah Lubis syaiful...@hotmail.com [belajar-excel]
        • ... 'Bagus' ba...@kingjim.co.id [belajar-excel]
        • ... Ahmad Syaifullah Lubis syaiful...@hotmail.com [belajar-excel]
        • ... Nang Agus nanga...@gmail.com [belajar-excel]
        • ... Ahmad Syaifullah Lubis syaiful...@hotmail.com [belajar-excel]
        • ... Nang Agus nanga...@gmail.com [belajar-excel]
        • ... 'zainul_ulum[at]yahoo[dot]com' zainul_u...@yahoo.com [belajar-excel]
        • ... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]
        • ... zainul_u...@yahoo.com [belajar-excel]
        • ... Ahmad Syaifullah Lubis syaiful...@hotmail.com [belajar-excel]
        • ... Nang Agus nanga...@gmail.com [belajar-excel]
        • ... Ahmad Syaifullah Lubis syaiful...@hotmail.com [belajar-excel]
        • ... Nang Agus nanga...@gmail.com [belajar-excel]
        • ... Ahmad Syaifullah Lubis syaiful...@hotmail.com [belajar-excel]
        • ... Nang Agus nanga...@gmail.com [belajar-excel]
      • ... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]
        • ... Ahmad Syaifullah Lubis syaiful...@hotmail.com [belajar-excel]
        • ... 'Mr. Kid' mr.nm...@gmail.com [belajar-excel]

Kirim email ke