26/12/10 8:51
piter123
Salve, non riesco a capire per quale motivo se genero una matrice di numeri data dal contatore di un ciclo for next moltiplicata per un numero decimale fisso mi generi numeri strani e di conseguenza non vengano poi riconosciuti in un if then, allego il codice
su un modulo inserisco l'apertura di un foglio excel
'DICHIARAZIONE VARIBILI
Option Explicit
'Per lavorare con Excel attivare in Progetto-Riferimenti Microsoft Excel 11.0 Object Library
Public AppExcel As Excel.Application
Public FileExcel As Excel.Workbook
Public Xls As Excel.Worksheet
Public Sub Apertura_Excel()
Set AppExcel = New Excel.Application
Set FileExcel = AppExcel.Workbooks.Add
FileExcel.SaveAs (App.Path & "\XlsOptScan.xls"
Set Xls = FileExcel.Worksheets(1)
End Sub
sulla form di avvio
Private Sub Form_Load()
call Apertura_Excel
call Prova
End Sub
Public Sub Prova()
Dim matr_prova(100) As Single
Dim passo As Single
passo = 0.1
For X = 0 To 100
matr_prova(X) = passo * X
Xls.Cells(X + 1, 17) = matr_prova(X)
If matr_prova(X) = 1.8 Then Exit For
Next X
end sub
il codice di sub prova cra matrice e la scrive su excel e già quà compaiono numeri da 0 con passo 0,1 ma se andiamo sulla cella di un qualsiasi numero questo per esempio invece di essere 1,8 è 1,80000007152557 (uso sistema metrico italia), inoltre di conseguenza la riga If matr_prova(X) = 1.8 Then Exit For non viene mai eseguita nella sua parte then e il ciclo non viene abortito, come mai ?
Grazie
su un modulo inserisco l'apertura di un foglio excel
'DICHIARAZIONE VARIBILI
Option Explicit
'Per lavorare con Excel attivare in Progetto-Riferimenti Microsoft Excel 11.0 Object Library
Public AppExcel As Excel.Application
Public FileExcel As Excel.Workbook
Public Xls As Excel.Worksheet
Public Sub Apertura_Excel()
Set AppExcel = New Excel.Application
Set FileExcel = AppExcel.Workbooks.Add
FileExcel.SaveAs (App.Path & "\XlsOptScan.xls"
Set Xls = FileExcel.Worksheets(1)
End Sub
sulla form di avvio
Private Sub Form_Load()
call Apertura_Excel
call Prova
End Sub
Public Sub Prova()
Dim matr_prova(100) As Single
Dim passo As Single
passo = 0.1
For X = 0 To 100
matr_prova(X) = passo * X
Xls.Cells(X + 1, 17) = matr_prova(X)
If matr_prova(X) = 1.8 Then Exit For
Next X
end sub
il codice di sub prova cra matrice e la scrive su excel e già quà compaiono numeri da 0 con passo 0,1 ma se andiamo sulla cella di un qualsiasi numero questo per esempio invece di essere 1,8 è 1,80000007152557 (uso sistema metrico italia), inoltre di conseguenza la riga If matr_prova(X) = 1.8 Then Exit For non viene mai eseguita nella sua parte then e il ciclo non viene abortito, come mai ?
Grazie
aaa