Saya memiliki kode ini memukul

kesalahan 13: Ketik Tidak Cocok

Setiap kali saya memasukkan atau mengubah nilai di C59, C59 berisi rumus ini =ROUNDUP(D59/C57,0). Saya menduga itu karena variabel yang berbeda tetapi tidak tahu bagaimana menyelesaikannya, bantuan apa pun sangat dihargai!

If Range("C59").Value = "0" Then
        Sheets("InvPL").Rows("78:79").EntireRow.Hidden = True
        Else
        Sheets("InvPL").Rows("78:79").EntireRow.Hidden = False
End If
1
Goodday 29 Februari 2020, 09:06

1 menjawab

Jawaban Terbaik

Anda akan ingin memastikan C57 bukan 0 saat Anda membaginya, dalam hal ini C59 akan menjadi #DIV/0! (kesalahan)

Anda tidak dapat memeriksa properti .Value sel jika mengandung kesalahan.

Periksa sel C59 untuk kesalahan terlebih dahulu:

If IsError(Worksheets("InvPL").Range("C59")) Then
  Msgbox "C59 contains an error. If C57=0 then it is a divide by zero error."
Else
  If Range("C59").Value = "0" Then
    Sheets("InvPL").Rows("78:79").EntireRow.Hidden = True
  Else
    Sheets("InvPL").Rows("78:79").EntireRow.Hidden = False
  End If
End If

Atau versi yang lebih bersih, menggunakan blok With, dan menggunakan Worksheets alih-alih Sheets karena sheet juga dapat merujuk ke objek bagan:

  With Worksheets("InvPL")
    If IsError(.Range("C59")) Then
      Msgbox "C59 contains an error. If C57=0 then it is a divide by zero error."
    Else
      If .Range("C59").Value = "0" Then
        .Rows("78:79").EntireRow.Hidden = True
      Else
        .Rows("78:79").EntireRow.Hidden = False
      End If
    End If
  End With

Anda dapat sedikit mengubah logika jika Anda ingin menyembunyikan/membuka sembunyikan baris tersebut jika terjadi kesalahan juga.


Opsi lain adalah mengubah rumus untuk mengembalikan nol alih-alih kesalahan ketika C57 adalah 0:

=IF(C57=0,0,ROUNDUP(D59/C57,0))
0
braX 29 Februari 2020, 17:31