У меня есть таблица чисел, которые выровнены по левому краю (т. Е. Excel распознает их как текст)
Я запускаю сценарий VBA для всех ячеек:
cell.value = cell.Value * 1
Это право выравнивает их все, и Excel распознал их как числа , за исключением для десятичных знаков (например, 3.14 не работает, а 314 работает). Я также запускаю скрипт поиска и замены, где выполняется поиск пробела (""), и заменяю его пробелом (""), так что это должно избавить хотя бы от общего пробела.
Дополнительные подсказки: Если я выполню формулу = Значение (A1) в Excel, Excel распознает даже десятичные числа как число. Если я запускаю Workbookfunction.value (A1), Excel не распознает число.
Таким образом, проблема, похоже, связана с VBA (?) И десятичными числами. Любые решения?
Теперь я запустил следующее после комментариев здесь:
For Each cell In rng
Dim vNumber As Double
On Error Resume Next
'Remove space
cell.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'Remove comma
cell.Replace What:=",", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'Check if empty, if it is: Do nothing
If IsEmpty(cell) = True Then
Else
vNumber = CDbl(cell.Value)
cell.Value = vNumber
End If
'Check if numeric
If IsNumeric(cell) = True Then
cell.Interior.Color = RGB(0, 254, 0)
cell.Interior.TintAndShade = 0.8
Else
cell.Interior.Color = RGB(100, 0, 0)
cell.Interior.TintAndShade = 0.8
End If
Next cell
Результатом является следующее До и После (где один с Двойным, а другой с Вариантом. Каким-то образом его перезапись ячейки, которые не являются десятичными ...