Я работаю над кодом, который копирует определенные значения ячеек из книги в другую книгу. Дело в том, что в одной книге информация находится в шестнадцатеричном формате, и мне нужно преобразовать значение в десятичное, когда я копирую его в другую книгу.
Что странно, так это то, что все работает идеально, и код копируется, а затем добавляет значение, преобразованное в нужную книгу; все, пока не дойдет до последней строки, и здесь я получаю ошибку. (ошибка появляется в строке с добавленным комментарием)
Debug.Print Now
varSheetA = varSheetA.Range(RangeA)
Debug.Print Now
i = 1
For rowN = LBound(varSheetA, 1) To UBound(varSheetA, 1)
Tst = Mid(wbkB.Worksheets("CopyFromHere").Cells(rowN + 1, 2).Value, 3, 6)
Set Rng = wbkA.Worksheets("Sheet1").Range(RangeA).Find(Tst)
If Rng Is Nothing Then
i = i + 1
wbkA.Worksheets("Sheet2").Cells(i, 5).Value = WorksheetFunction.Hex2Dec(wbkB.Worksheets("CopyFromHere").Cells(rowN + 1, 5).Value) 'error is here
End If
Next
Я должен упомянуть, что некоторые из значений в шестнадцатеричном формате следующие (просто чтобы иметь представление): 239, 7E101, 7FA3A, B38.
И значение, которое в настоящее время программа выдает ошибку, - B38.
Я не понимаю, почему это происходит, поскольку код отлично работает до этого значения / последней строки. Я не знаю, в чем проблема.
Я проверил, и он не содержит пробелов или чего-то еще :(
Вы пытались, как было предложено в моем ответе, обрезать значение ячейки?
Да, я попробовал это сейчас, и похоже, что это сработало. Я не знаю, что там было спрятано, пока я проверял наличие пробелов или чего-то еще. Большое спасибо!





Очистите "ячейку" перед этим
wbkA.Worksheets("Sheet2").Cells(i, 5).Value = _
WorksheetFunction.Hex2Dec(Trim(wbkB.Worksheets("CopyFromHere").Cells(rowN + 1, 5).Value))
Вы уверены, что ячейка действительно содержит B38, или в ячейке есть пробел?