2015-07-29 5 views
0

В моем листе excel, если я попытаюсь вставить десятичное число, например 3.4 в ячейку, число, которое появится, равно 3.4. Но если я попытаюсь вставить то же число с помощью макроса vba, число, которое появляется, равно 3,4. Это мой код.Excel Vba Macro Вставить десятичное число

Sub insertData() 
    Dim valore as String 
    valore = "3.4" 
    Cells(1, 1) = valore 
End Sub 

Как решить эту проблему? Thanks

ответ

0

Должно быть какое-то форматирование на вашем листе, так как оно отлично работает здесь, но вы можете принудительно форматировать формат чисел, используя ниже. для более десятичных знаков просто добавьте их в формат, например. «0,000» для 3 знаков после запятой

Sub insertData() 
Dim valore As String 
valore = "3.4" 
With Cells(1, 1) 
    .Value = valore 
    .NumberFormat = "0.0" 
End With 
End Sub 

Ниже с CDbl преобразует строку в двойной, который должен сохранить десятичные тоже.

Sub insertData() 
Dim valore As String 
valore = "3.4" 
With Cells(1, 1) 
    .Value = cdbl(valore) 
    .NumberFormat = "0.0" 
End With 
End Sub 
0

В вашем коде не найдено ничего плохого. Возможно, лист отформатирован по-разному от исходного. В таких случаях я предпочитаю, чтобы я копировал и вставлял в текстовый редактор Note Tab Light, а затем снова вставлял данные в новый рабочий лист excel.

0

См. Этот пример. Это прояснит мою проблему. Этот код делает правильный вывод.

Sub Macro1() 
Dim row As Integer 
Dim value As String 
row = 1 
For i = 1 To 3 
For j = 1 To 3 
For k = 1 To 3 
value = i & "." & j & "." & k 
Cells(row, 1) = value 
row = row + 1 
Next k 
Next j 
Next i 
End Sub 

Этот код делает неправильный вывод, потому что точка преобразуется в запятую.

Sub Macro2() 
Dim row As Integer 
Dim value As String 
row = 1 
For i = 1 To 3 
For j = 1 To 3 
value = i & "." & j 
Cells(row, 1) = value 
row = row + 1 
Next j 
Next i 
End Sub