转换为string在十进制后删除0

我通过使用下面的Implode()方法将数据从源工作簿复制到目标工作簿。 我的问题是,在源工作簿格式将是7.00但在目标工作簿格式将是7 ,我相信这是由于CStr(MyR(1, i))即ConvertToString。 如何更改此方法,以便列的数据格式一旦被复制到目标工作簿,它又是一个numeric格式?

 Private Function Implode(ByVal R As Range, Optional ByVal D As String = strSeparator) As String Dim i As Long, ii As Long, str As String, MyR() As Variant MyR = R For i = 1 To R.Columns.Count isPercent = False If iPC > 0 And IsNumeric(MyR(1, i)) And MyR(1, i) <> "" Then For ii = 1 To iPC If i = PercCols(ii) Then isPercent = True Exit For End If Next ii End If str = CStr(MyR(1, i)) If InStr(1, str, D) > 0 Then str = """" & str & """" If i = 1 Then Implode = str Else Implode = Implode & D & str End If Next i End Function 

可以尝试

  If IsNumeric(MyR(1, i)) Then 'Check for numeric Round(CDec(MyR(1, i)),2) Else CStr(MyR(1, i)) End If 

CDec允许没有小数的那些被显示为整数

有关转换function的更多信息