SORU
4 AĞUSTOS 2015, Salı


Neden hücreleri(1,1) = 500 * 100 ama 50000*100 taşmasına neden yok't?

Ben sadece basit bir alt oluşturulan ve taşma hata ver. Ancak, bir şey kod ile yanlış görmüyorum, ve 50000*100 500*100'den daha büyük olduğu için çok garip.

sub add()
    'This will cause an overflow error
    cells(1,1) = 500 * 100
    'But this won't
    cells(2,2) = 50000 * 100
end sub

CEVAP
4 AĞUSTOS 2015, Salı


Düşünün:

Sub add()
    'This works:
    Cells(1, 1) = CLng(500) * 100
    'as does this:
    Cells(2, 2) = 50000 * 100
End Sub

Anlaşılan VBA bu tür sağ tarafta hazır tutmak için yeterince büyük olduğu için ilk ifade için Integer varsayılan türü tespit edildi. 50000 Long olarak yorumlar Integer için çok büyük. CLng açıkça Long terfi tetikler.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HTC Tutorials

    HTC Tutorial

    21 EYLÜL 2010
  • уσ ρℓz sυв ιℓℓ sυв вαcқ

    уσ ρℓz

    14 EKİM 2010
  • Stevie

    Stevie

    2 Mayıs 2010