excel - VBA,处理 E-10

标签 excel vba

我的单元格应该是 0我相信。 7.45058059692383E-12 .
如何在我的代码中制作这些 0?

Sheets("MainData").Range("C" & i) = Sheets("CM_MainData").Range("C" & i)
我想转换 NumberFormat0可能会有所帮助,但它没有用。
Sheets("MainData").Range("C" & i) = Sheets("CM_MainData").Range("C" & i).NumberFormat = "0.00"
结果是 FALSE请帮忙!
完整代码:
Sub CopyData()

Worksheets("MainData").Rows("2:" & Rows.Count).ClearContents

'Copy data from the CM Commentary File to Template
Application.ScreenUpdating = False
 
Set MainDataCM = Workbooks.Open(Sheets("Input").Range("B3") & Sheets("Input").Range("B6"))
MainDataCM.Sheets("Main Data").Copy After:=ThisWorkbook.Sheets(1)
MainDataCM.Close savechanges:=False

Application.ScreenUpdating = True

Sheets("Main Data").Name = "CM_MainData"

Worksheets("CM_MainData").Visible = False

'Read the CM_MainData tab and copy the required columns in the MainData tab
Dim k As Long
k = Sheets("CM_MainData").Range("A1", Sheets("CM_MainData").Range("A1").End(xlDown)).Rows.Count
Debug.Print (k)

i = 2

While i <= k
    Sheets("MainData").Range("A" & i) = Sheets("CM_MainData").Range("A" & i)
    Sheets("MainData").Range("B" & i) = Sheets("CM_MainData").Range("B" & i)
    Sheets("MainData").Range("C" & i) = Sheets("CM_MainData").Range("C" & i).NumberFormat = "0.00"
    Sheets("MainData").Range("D" & i) = Sheets("CM_MainData").Range("D" & i)
    Sheets("MainData").Range("E" & i) = Sheets("CM_MainData").Range("C" & i) * 1000
    Sheets("MainData").Range("F" & i) = Sheets("CM_MainData").Range("H" & i)
    'Sheets("MainData").Range("E" & i).NumberFormat = "0.00"
    
    If Sheets("MainData").Range("F" & i) = "" Then
        Sheets("MainData").Range("F" & i) = "RBC INVESTOR SERV O/H & MISC"
    End If
    
    i = i + 1
    
Wend

Worksheets("Macro").Activate
Worksheets("Macro").Select

MsgBox "Step 1 Completed"

End Sub

最佳答案

值(value)转移:

Sheets("MainData").Range("C" & i).Value = Sheets("CM_MainData").Range("C" & i).Value
数字格式(一个单独的步骤,并且不会更改基础值):
Sheets("MainData").Range("C" & i).NumberFormat = "0.00"
或使用 WorksheetFunction.Round (确实改变了基础值(value))。
Sheets("MainData").Range("C" & i).Value = WorksheetFunction.Round(Sheets("CM_MainData").Range("C" & i).Value, 2)

关于excel - VBA,处理 E-10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65851685/

相关文章:

excel - 在 Excel(科学记数法)中以 'Text' 格式的单元格查看大数时出现问题

excel - 停止计数到特定工作表

Excel公式找出3列中的日期是否相同?

Excel vba 宏在 2007 年出现类型不匹配错误,但在 2010 年有效

mysql - 将行从一个链接表插入到另一个链接表

excel - 在 VBA 中打开与 Excel 电子表格的 ADO 连接

vba - 查找字符串是否包含字符串列表的成员

python - 在 Outlook 中从 Excel 附件创建数据框

java - 从Excel工作表内容生成XML

excel - 将数据从 Excel 发送到网站