USD - CAD doları hatası


1

USD'yi CAD'e dönüştüren bir makro geliştirmeye çalışıyorum. Şimdiye kadar, makro başlangıç ​​formülünü gösterirken (gerekli) aktif hücrenin değerini CAD'e dönüştürür.

Ancak, aktif hücre formülünde başka bir hücrenin adını içerdiğinde hata alıyorum.

Örneğin:

  • Eğer A2 ayarlandı =32*4+16 işlev çağrıldığında hücre değeri 149.27 ve döner =32*4+16*USDCAD.

  • Eğer A2 = 32*4+E7, işlevi çağırmak bir hücre hatası verir #NAME? ve döner =32*4+'E7'*USDCAD

'E7' hücresini, aramadan önce / arama sırasında bir değere nasıl dönüştürebilirim? USDCAD işlev?

İşte kodum:

Sub ConvertToCAD()
    Dim LValue As String
    Dim aCell As Range
    Dim xRate As Double
    Range("USDCAD") = FXRate("USD", "CAD", "close")
    For Each aCell In Selection
        aCell.FormulaR1C1 = CStr(aCell.Formula) & "* USDCAD"
    Next aCell
End Sub

Bir kenara: sadece meraklı, ilgileniyor musunuz (32*4+16)*USDCAD ya da 32*4 Zaten CAD parçası?
fideli

Yanıtlar:


1

Satırı değiştir:

aCell.FormulaR1C1 = CStr(aCell.Formula) & "* USDCAD"

için:

aCell.Formula = aCell.Formula & "* USDCAD"

LHS’de, R1C1 biçiminde bir formül belirtmemek yerine, mevcut formülü değiştirmek istersiniz. RHS'de mevcut formülü bir dizgeye dönüştürmeyin.

Dönüştürmeden önce USD hesaplamanızda bir dizi terim olabileceğinden, mevcut formülün tamamını parantez içine almaktan ve sonra döviz kuru ile çarpmaktan faydalanabilirsiniz, şöyle:

aCell.Formula = "(" & aCell.Formula & ") * USDCAD"

Yukarıdaki kod pasajı için Rob G'ye teşekkür ederiz.


... ve önceki yorumunuzun doğru olduğunu kabul edersek, aCell.Formula = "(" & aCell.Formula & ") * USDCAD" bu yüzden sadece bir kısmını çarpmak yerine tüm formülü dönüştürür.
Rob Gale

Kabul. Bunu daha genel bir çözüm olduğu için değiştireceğim.
fideli
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.