פורסם 2009 בספטמבר 1716 שנים אני לא מבין כלום בVB, אבל הייתי צריך לכתוב קוד לאקסל, אז למדתי משהו אבל משום מההוא כותב לי overlow ומפסיקהנה הקודמה הטעות?Private Sub replace()Dim vl As StringDim char As StringDim str As StringDim repeat As StringFor i = 1 To 3000 str = "" repeat = "2342" vl = Cells(i, "K").Text For j = 1 To Len(vl) char = "" Select Case Mid(vl, j, 1) Case repeat char = "Z" Case 1 char = "B" Case 2 char = "E" Case 3 char = "L" Case 4 char = "F" Case 5 char = "A" Case 6 char = "C" Case 7 char = "T" Case 8 char = "O" Case 9 char = "R" Case 0 char = "S" Case "-" char = "-" End Select str = str + char repeat = Mid(vl, j, 1) If char = "Z" Then repeat = "3423" End If Next j Dim s As Integer s = Val(vl) If s < 0 Then str = Right(str, Len(str) - 1) str = str + ")" str = "(" + str End If If Cells(i, "K").Value <> "Sell p/c" And Cells(i, "K").Value <> "Mounting" Then Cells(i, "K").Value = str End IfNext iEnd Sub
פורסם 2009 בספטמבר 1716 שנים תנסה לדבג את הקוד - תוריד חלקים מהפונקציה עד שתמצא את החלק הבעייתי (תתחיל מלעשות לולאה בגודל 3 במקום 3000...)
פורסם 2009 בספטמבר 1716 שנים מחבר אני שם לב שזה קורה בכל מספר בן חמש ספרות שיש בו 3 אפסים או יותר, אם מישהו יכול לעזור לי להבין למה, תודה מראש
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.