Excel VBA – 创build新工作表的macros导致奇怪的故障

我创build了一个应该添加(比方说100)新的工作表到我的Excel工作簿的macros。 这些新的工作表应该是这样命名的: 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.99999999工作表之后,所有其他人都得到了像5.99999999等等的名字。 有没有人有解释为什么会发生?

发生这种情况是因为您正在使用浮点math的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