Bagaimana cara membuat GUID di Excel?

Saya membutuhkan fungsi untuk menambahkan GUID ke sel di excel. Saya menemukan pertanyaan sebelumnya di stackoverflow, tetapi tidak berfungsi. Ini menyarankan fungsi berikut:

=CONCATENATE(DEC2HEX(RANDBETWEEN(0,4294967295),8),"-",DEC2HEX(RANDBETWEEN(0,6553‌​5),4),"-
 ",DEC2HEX(RANDBETWEEN(16384,20479),4),"-",DEC2HEX(RANDBETWEEN(32768,49151‌​),4),"-
 ",DEC2HEX(RANDBETWEEN(0,65535),4),DEC2HEX(RANDBETWEEN(0,4294967295),8))

Saya tidak dapat membuat metode concatenate bekerja, dan saya mencobanya dengan menggunakan angka "&" untuk menggabungkannya. Tampaknya berhasil, tetapi kemudian saya mendapatkan error yang tidak dapat dijelaskan pada blok DEX2HEX kedua: DEC2HEX(RANDBETWEEN(0,65535),4). Evaluator rumus Excel mengatakan itu tidak valid, tapi saya tidak tahu mengapa sama sekali. Ada ide?

=CONCATENATE(
    DEC2HEX(RANDBETWEEN(0;4294967295);8);"-";
    DEC2HEX(RANDBETWEEN(0;42949);4);"-";
    DEC2HEX(RANDBETWEEN(0;42949);4);"-";
    DEC2HEX(RANDBETWEEN(0;42949);4);"-";
    DEC2HEX(RANDBETWEEN(0;4294967295);8);
    DEC2HEX(RANDBETWEEN(0;42949);4)
)
Komentar (5)
Larutan

Saya menggunakan fungsi berikut dalam kode makro v.2013 excel vba

Public Function GetGUID() As String 
    GetGUID = Mid$(CreateObject("Scriptlet.TypeLib").GUID, 2, 36) 
End Function 
Komentar (5)

Ini sama sekali bukan masalah dengan fungsinya.

Saya perlu sedikit menggali, tetapi masalahnya ada pada penyalinan dan penempelan. Coba salin ini: String RANDBETWEEN(0,65535), yang diposting di pertanyaan awal Anda, dan tempelkan ke Hex Editor, maka Anda akan melihat bahwa sebenarnya ada dua karakter null di 65535:

00000000  52 41 4E 44 42 45 54 57 45 45 4E 28 30 2C 36 35  RANDBETWEEN(0,65
00000010  35 33 00 00 35 29                                53‌..​5)
Komentar (2)