Ладно Ok кусок кода из модуля1
комментарии
Public code As String’code –глобальная переменная обьявленная в Модуле4 в разделе General Declaration
Public formname As String-тоже самое что code.
embed ReqString, formname- Public Sub в Модуле2
При такой постановке кода все работает:
fieldname = "&debt1"
fieldvalue = "1"
priznak = "Debt1"
str = ""
debt = masiv(Debt1, priznak)
'столбец
Row = 2
'строка
j_initial = 4
j = 4
'нач позиц в массиве 1я
k = 1
str = ""
'кол столбцов в таблице с нужными для взятия полями
ActiveSheet.Range("AL1").Select
EndRow = ActiveSheet.Range("AL1").Value2
'While ActiveSheet.Range("A" + CStr(j)).Value2 = Empty Or ActiveSheet.Range("A" + CStr(j)).Value2 = ""
'While Not (ActiveSheet.Range("A" + CStr(j)).Value2 = Empty) Or Not (ActiveSheet.Range("A" + CStr(j)).Value2 = "")
For i = Row To EndRow ' цикл до конца таблицы
str = str & "&" + debt(k) + "="
'если есть значение иначе пустое
If (ActiveSheet.Cells(j, i).Value2 <> "") Then
debt(k) = ActiveSheet.Cells(j, i)
Else
debt(k) = ""
End If
str = str & debt(k)
k = k + 1
If Range("A" + CStr(j)).Value2 = Empty Or Range("A" + CStr(j)).Value2 = "" Then
GoTo label
End If
If i = EndRow Then
str = str & "&ReqId" + "=" + code
str = str & fieldname + "=" + fieldvalue
str = "&__Click=0" + str
ReqString = str
formname = "debt"
embed ReqString, formname
j_initial = j_initial + 1
j = j_initial
i = Row - 1
k = 1
str = ""
debt = masiv(Debt1, priznak)
End If
Next i
' Wend
При такой постановке кода не работает,(тоже самое только с While) While в дебагере значения не имеет, в функцию embed в обеих случаях передается одно и то же значение ReqString,разница лишь в значении code ,потому что в первом случае это значение доступно из Global во втором случае это значение надо передавать в функцию и даже в этом случае кажись это значение изменяется каким то странным образом хотя для результата функции это значения не имеет
fieldname = "&debt1"
fieldvalue = "1"
Call debet(fieldname, fieldvalue, code)
Public Function debet(fieldname, fieldvalue, code)
Dim Debt1(1 To 7) As Variant
priznak = "Debt1"
str = ""
debt = masiv(Debt1, priznak)
'столбец
Row = 2
'строка
j_initial = 4
j = 4
'нач позиц в массиве 1я
k = 1
str = ""
'm = 1
'кол столбцов в таблице с нужными для взятия полями
ActiveSheet.Range("AL1").Select
EndRow = ActiveSheet.Range("AL1").Value2
'While ActiveSheet.Range("A" + CStr(j)).Value2 = Empty Or ActiveSheet.Range("A" + CStr(j)).Value2 = ""
While Not (ActiveSheet.Range("A" + CStr(j)).Value2 = Empty) Or Not (ActiveSheet.Range("A" + CStr(j)).Value2 = "")
For i = Row To EndRow ' цикл до конца таблицы
str = str & "&" + debt(k) + "="
'если есть значение иначе пустое
If (ActiveSheet.Cells(j, i).Value2 <> "") Then
debt(k) = ActiveSheet.Cells(j, i)
Else
debt(k) = ""
End If
str = str & debt(k)
k = k + 1
'If Range("A" + CStr(j)).Value2 = Empty Or Range("A" + CStr(j)).Value2 = "" Then
' GoTo label
' End If
If i = EndRow Then
str = str & "&ReqId" + "=" + code
str = str & fieldname + "=" + fieldvalue
str = "&__Click=0" + str
ReqString = str
formname = "debt"
embed ReqString, formname
j_initial = j_initial + 1
j = j_initial
i = Row - 1
k = 1
str = ""
debt = masiv(Debt1, priznak)
End If
Next i
Wend
End Function