Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA-创建新工作表的宏导致异常故障_Vba_Excel - Fatal编程技术网

Excel VBA-创建新工作表的宏导致异常故障

Excel VBA-创建新工作表的宏导致异常故障,vba,excel,Vba,Excel,我创建了一个宏,该宏用于向excel工作簿中添加(比如100个)新工作表。这些新工作表应该这样命名:1%,1.1%,1.2%,1.3%,…,9.9%,10% Sub AddWorkSheets() Dim i As Double For i = 0 To 10 Step 0.1 Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = i & "%" Next i End Sub 当我运行这段代码时,开始一切都正常-它添加了如上

我创建了一个宏,该宏用于向excel工作簿中添加(比如100个)新工作表。这些新工作表应该这样命名:
1%
1.1%
1.2%
1.3%
,…,
9.9%
10%

Sub AddWorkSheets()
Dim i As Double
For i = 0 To 10 Step 0.1
   Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = i & "%"
Next i
End Sub
当我运行这段代码时,开始一切都正常-它添加了如上所述命名的新工作表。 但它只在工作表
5.9%
之前有效。在那张工作表之后,所有其他人的名字都是
5.9999999
6.0999999
7.299999
等等。
有人能解释为什么会发生这种情况吗?

之所以会发生这种情况,是因为在浮点数学中使用了for next循环,而分数无法精确表示

这里的解释,为什么会发生这种情况。下面是更正代码的方法

Sub AddWorkSheets()
Dim i As Double
For i = 0 To 100 Step 1
  Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = round(i/10,1) & "%"
Next i
End Sub

那么
有人能解释为什么会这样吗?
感谢路易斯·西奎特和彼得·L.的帮助