[belajar-excel] Delete Hidden Names dengan VBA [1 Attachment]

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[belajar-excel] Delete Hidden Names dengan VBA [1 Attachment]

Milis Belajar Excel mailing list
Be-Excelers,
File excel terlampir, terdiri dari dari 4 (empat) named range berupa object tabel jika dilihat melalui [Name Manager]. Tetapi jika saya jalankan vba code berikut:
'==============
Sub ShowAllNames()
    Dim n
    For Each n In ActiveWorkbook.Names
    n.Visible = True
    Next
End Sub
'===========

maka akan ditampilkan named range yang tersembunyi.
Saya bermaksud untuk menghilangkan / men-delete names ini karena jika masih ada names tersebut akan menimbulkan masalah saat copy sheet. Biasanya saat copy sheet akan muncul pesan :

The Name ‘_’ Already Exist……

Sebelumnya saya delete secara manual names yang tidak diperlukan melalui [Name Manager].

Supaya proses delete dan pemiihan bisa dilakukan dengan vba, saya telah menulis code berikut:

'===================================
Sub DeleteNames()
    Dim n As Name, ex As Variant, x As Variant
    ex = Array("tbl", "print","znl")'name yang tidak dihapus
    For Each n In ActiveWorkbook.Names
        For Each x In ex
            If InStr(1, x, n.Name) = 0 Then
                n.Delete
                Exit For
            End If
        Next
    Next n
End Sub
'===================================

Mohon petunjuknya mengapa procedure DeleteNames tersebut tidak bisa dijalankan?

Karena tidak tahu penyebab erronya, sementara saya modifikasi macro tersebut menjadi:

'====================================
Sub DeleteNames()
    Dim n As Name, ex As Variant, x As Variant
    ex = Array("tbl", "print")
    For Each n In ActiveWorkbook.Names
        For Each x In ex
            If InStr(1, x, n.Name) = 0 Then
                On Error Resume Next
                n.Delete
                If Err.Number Then Resume Next
                Exit For
            End If
        Next
    Next n
End Sub
'===================================

Apakah memang solusinya seperti itu? atau ada cara lain selain menggunakan trapping error "On Resume Next"?

Terimakasih,
-zainul
dari Blang Nisam, Aceh Timur.





#dikirim_pakai_mail.yahoo.com_tanpa_pulsa#

DeleteHiddenNames.xlsx (58K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [belajar-excel] Delete Hidden Names dengan VBA

Milis Belajar Excel mailing list
Hai mas Zainul,

Sebelum di delete, di-visible-ken lebih dulu saja.

Regards,
Kid







2017-06-10 6:10 GMT+07:00 Zainul Ulum [hidden email] [belajar-excel]
<[hidden email]>:

>
>
> Be-Excelers,
> File excel terlampir, terdiri dari dari 4 (empat) named range berupa
> object tabel jika dilihat melalui [Name Manager]. Tetapi jika saya jalankan
> vba code berikut:
> '==============
> Sub ShowAllNames()
> Dim n
> For Each n In ActiveWorkbook.Names
> n.Visible = True
> Next
> End Sub
> '===========
>
> maka akan ditampilkan named range yang tersembunyi.
> Saya bermaksud untuk menghilangkan / men-delete names ini karena jika
> masih ada names tersebut akan menimbulkan masalah saat copy sheet. Biasanya
> saat copy sheet akan muncul pesan :
>
> The Name ‘_’ Already Exist……
>
> Sebelumnya saya delete secara manual names yang tidak diperlukan melalui
> [Name Manager].
>
> Supaya proses delete dan pemiihan bisa dilakukan dengan vba, saya telah
> menulis code berikut:
>
> '===================================
> Sub DeleteNames()
> Dim n As Name, ex As Variant, x As Variant
> ex = Array("tbl", "print","znl")'name yang tidak dihapus
> For Each n In ActiveWorkbook.Names
> For Each x In ex
> If InStr(1, x, n.Name) = 0 Then
> n.Delete
> Exit For
> End If
> Next
> Next n
> End Sub
> '===================================
>
> Mohon petunjuknya mengapa procedure DeleteNames tersebut tidak bisa
> dijalankan?
>
> Karena tidak tahu penyebab erronya, sementara saya modifikasi macro
> tersebut menjadi:
>
> '====================================
> Sub DeleteNames()
> Dim n As Name, ex As Variant, x As Variant
> ex = Array("tbl", "print")
> For Each n In ActiveWorkbook.Names
> For Each x In ex
> If InStr(1, x, n.Name) = 0 Then
> On Error Resume Next
> n.Delete
> If Err.Number Then Resume Next
> Exit For
> End If
> Next
> Next n
> End Sub
> '===================================
>
> Apakah memang solusinya seperti itu? atau ada cara lain selain menggunakan
> trapping error "On Resume Next"?
>
> Terimakasih,
> -zainul
> dari Blang Nisam, Aceh Timur.
>
> #dikirim_pakai_mail.yahoo.com_tanpa_pulsa#
>
>
Loading...