Saya tidak berpengalaman dalam VBA dan saya telah menyusun skrip kecil untuk membuat konten huruf besar sel setelah nilai apa pun dimasukkan. Script harus menerapkan ini hanya untuk rentang sel tertentu, dalam kasus saya J11:AK25.

Script berfungsi (itu membuat konten sel menjadi huruf besar setelah ada sesuatu yang dimasukkan atau diubah), tetapi Excel mogok tepat setelah memasukkan atau mengubah nilai. Ini terjadi di Excel 2013.

Kode yang saya miliki sekarang:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("J11:AK24")) Is Nothing Then RunUp
End Sub


Sub RunUp()
 Range("J11:AK25") = [index(upper(J11:AK25),)]
End Sub

Ada yang bisa bantu?

0
ExcB 5 Maret 2020, 02:05

1 menjawab

Jawaban Terbaik

Matikan acara sebelum memanggil sub lainnya:

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Goto SafeOut
    Application.EnableEvents = False
    If Not Intersect(Target, Me.Range("J11:AK24")) Is Nothing Then RunUp

SafeOut:
    Application.EnableEvents = True
End Sub

Yang sedang berkata, ini mungkin lebih aman:

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo SafeOut
    Application.EnableEvents = False

    Dim rng As Range
    Set rng = Intersect(Target, Me.Range("J11:AK24"))
    If Not rng Is Nothing Then
        Dim cel As Range
        For Each cel In rng
            cel.Value = UCase$(cel.Value)
        Next cel
    End If

SafeOut:
    Application.EnableEvents = True
End Sub
1
Scott Craner 4 Maret 2020, 23:18