Excel VBA: ошибка переполнения при назначении похожих типов данных - PullRequest
1 голос
/ 30 марта 2020

Я новичок в сценариях VBA и пытаюсь создать макрос, который вычисляет налоговые компоненты (Federal, State et c.), Взяв в качестве входных данных TaxableIncome и имя налогового компонента. Я заполняю налоговые скобки в виде именованного диапазона на листе «Данные». Я объявил пользовательский тип данных TaxBracket для представления налоговой скобки. В качестве первого шага я хочу прочитать данные из именованного диапазона в рабочем листе «Данные» в массив «taxBrackets» для дальнейшей обработки. Странно, это выдает ошибку, когда я пытаюсь присвоить значения полям типа данных. Может кто-нибудь сказать мне, что здесь не так !!

enter image description here

Type TaxBracket
  low As Single
  high As Single
  rate As Single
End Type

Function calculateTaxComponent(component As String, taxable_income As Variant) As Single

    Dim taxBrackets() As TaxBracket, overflow_income As Single, tax As Single
    Dim namedRange As Variant
        namedRange = Range("Data!US_FEDERAL_TAX_RATES").Value
        
    ReDim taxBrackets(1 To UBound(namedRange, 1))
    For i = LBound(taxBrackets) To UBound(taxBrackets)
        With taxBrackets(i)
            .low = CSng(namedRange(i, 1)) '<---- gives an Runtime(6) overflow error
            .high = CSng(namedRange(i, 2))
            .rate = CSng(namedRange(i, 3))
        End With
    Next i
    '.....................
    '.....................
    '.................
    calculateTaxComponent = tax
  End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...