0
我有這個代碼是從另一個工作表中提取值。 這些值是文本,但提取後的Excel將它們轉換爲編號不管是什麼,即使設置爲文本格式的列,即使使用保持excel從自動格式化字符串到VBA編號
Format(value , "#")
的問題是,他們是大的數字,它是不斷變化的任何數字高於15計數到0,我需要數字,因爲它們是。
它們不在參考列切(J,3),所以它在此過程中改變
Dim i, col1, col2 As Integer
i = 2
col1 = 4
col2 = 5
For j = 2 To 2205
If Cells(j, 3).Value <> "" Then
If Len(Cells(j, 3)) = 20 Then
Cells(i, col1).Value = Format(Cells(j, 3).Value, "#")
Cells(i, col2).Value = Cells(j, 3).Row
Cells(j, 3).Value = ""
i = i + 1
End If
End If
Next j
i = 2
col1 = col1 + 2
col2 = col2 + 2
作爲一個補充說明:您仍然能夠與值作爲數字工作,如果你施放它們作爲[十進制](http://www.techonthenet.com/excel/formulas/cdec.php )。例如:'CDec(Cells(i,col2).Value)+ 2'。數字的位數仍然有限制,但我無法找到有關限制的文檔。但是,我能夠通過將26位數字添加到另一個26位數字來進行測試。 – Tim
@Tim,正確。 VBA與excel沒有相同的限制...要在工作表中顯示數字,您需要使用NumberFormat屬性將文本格式設置爲文本格式,但在VBA中,您可以將值轉換爲十六進制等,然後使用他們是精確的數字。這裏是關於VBA數據類型及其侷限性的參考。 http://www.quepublishing.com/articles/article.aspx?p=339929&seqNum=2 –
不錯!現在我知道限制是29位數字。 :D真的......誰需要超過29位數字?即使[NASA將PI降至15](http://www.jpl.nasa.gov/edu/news/2016/3/16/how-many-decimals-of-pi-do-we-really-need/ )...嗯...我想知道他們是否選擇了15,因爲他們使用Excel? xD – Tim