0
我正在寫一個代碼,用excel分兩行使用vba.I出現溢出錯誤。使用VBA劃分2行
Private Sub Rated_Advances_Total_Advance()
Const FOLDER As String = "C:\SBI_Files\"
Const cStrWSName As String = "Rated Advances to Total Advance"
Const sourceName As String = "Credit Risk Components"
On Error GoTo ErrorHandler
Dim i As Integer
Dim fileName As String
'ThisWorkbook.Worksheets(cStrWSName).Range("A4:C9").ClearContents
' ThisWorkbook.Worksheets(cStrWSName).Range("A12:C17").ClearContents
' ThisWorkbook.Worksheets(cStrWSName).Range("A19:C29").ClearContents
P = 4
j = 1
fileName = Dir(FOLDER, vbDirectory)
Do While Len(fileName) > 0
If Right$(fileName, 4) = "xlsx" Or Right$(fileName, 3) = "xls" Then
i = i + 1
Dim currentWkbk As Excel.Workbook
Set currentWkbk = Excel.Workbooks.Open(FOLDER & fileName)
'Entity wise consolidation'
ThisWorkbook.Worksheets(cStrWSName).Cells(P, j).Value = Left(currentWkbk.Name, Len(currentWkbk.Name) - 4)
ThisWorkbook.Worksheets(cStrWSName).Cells(P, j).Font.Bold = True
ThisWorkbook.Worksheets(cStrWSName).Cells(P, 2).Value = currentWkbk.Sheets(sourceName).Cells(24, 3).Value/currentWkbk.Sheets(sourceName).Cells(27, 3).Value
如果值大於15倍的數字就會導致溢出,如果你想使用它作爲一個整數(我來到這裏溢出錯誤)
P = P + 1
currentWkbk.Close
End If
fileName = Dir
Loop
Rated_Advances_Total_Advance
ProgramExit:
Exit Sub
ErrorHandler:
MsgBox Err.Number & " - " & Err.Description
Resume ProgramExit
End Sub
發生錯誤時「P」的值是多少?是否可能'Integer'類型是[** overflown **](http://msdn.microsoft.com/en-us/library/office/aa164754(v = office.10).aspx)?將聲明從'Integer'更改爲'Long'並快速嘗試 – 2014-02-26 13:45:00
@mehow對於第一個P本身,它顯示一個錯誤。我試着用很長時間它沒有工作 – user3045652