Jeg har lavet en macro i VBA, der i en af funktionerne checker validitet
af noget input-data. Hvis data ikke er valide, så kan macroen selv
forsøge at rette i data. Hvis macroen har forsøgt at rette i data, så
skal data igen checkes for validitet (da rettelserne ikke altid er nok),
og der er her, at jeg er i tvivl om metoden. Er der specifik måde at få
en funktion til at kalde sig igen ... eller skal jeg blot eksplicit gøre
det ?
Min kode er fx.
01 Private Function validateDimension(ByVal intCLNumRows As Integer, ByVal intCLNumCols As Integer, myTable As FPHTMLTable, ByVal strCLData As String) As Boolean
02 '/Purpose: Validate dimension of data in HTML-table and clipboard
03 '/Created: 2002/10/06 19:21
04
05 '/Parameters: Number of rows in clipboard
06 '/ Number of columns in clipboard
07 '/ Table-object containing the table to manipulate
08 '/ Data from clipboard
09 '/
10 '/Returns: boolean indicating valid format or not
11 On Error GoTo Err
12
13 Dim myRow As FPHTMLTableRow
14 Dim ar1, ar2
15 Dim intResponse As Integer
16 Dim intI As Integer
17 Dim intInactiveRows As Integer
18 Dim intActiveRows As Integer
19 Dim intIncrStop As Integer
20 Dim strMsg As String
21 Dim strDimHTML As String
22 Dim intRowNumber As Integer
23
24 intInactiveRows = getInitialRowSpan(myTable)
25 intActiveRows = myTable.rows.Length - intInactiveRows
26
27 ' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
28 ' number of rows in HTML is smaller than rows in clipboard
29
30 If intActiveRows < intCLNumRows Then
31 validateDimension = False
32 intRowNumber = intCLNumRows - myTable.rows.Length + intInactiveRows
33 strMsg = "The number of rows in the destination table is smaller than" & vbCrLf & _
34 "than the number of rows of the data in the clipboard." & vbCrLf & _
35 vbCrLf & _
36 "Would you like the extra rows to be automatically added ?"
37
38 intResponse = MsgBox(strMsg, vbExclamation Or vbYesNo, "Warning: Too few rows in destination table")
39 Select Case intResponse
40 Case 6
41 Call addRows(myTable, intRowNumber, intInactiveRows) 'addRows tilføjer rækker til en HTML-tabel i Frontpage.
42 validateDimension = True
43 End Select
44 Exit Function
45 End If
Det er i linie 42 jeg er i tvivl. Her skal linien skiftes ud med et
rekursivt kald af funktionen igen, men er den eneste måde jeg kan gøre
dette på at lave linierne til
39 Select Case intResponse
40 Case 6
41 Call addRows(myTable, intRowNumber, intInactiveRows)
42 call validateDimension(intCLNumRows, intCLNumCols, myTable, strCLData)
43 End Select
?
Kan dette have nogle uforudsete konsekvenser som jeg ikke lige pt kan se ?
pft
--
Jesper Stocholm -
http://stocholm.dk
Svar til gruppen og ikke til mig privat !
Skriv under det du svarer på -
www.usenet.dk/netikette/citatteknik.html