serg-bi написал(а):
Коллеги, привет.
Как в книжке считать переменные BEx-отчёта с помощью VBA? Вопрос усложняется тем, что в книжке несколько отчётов, которые я объединяю в один.
BW 3.x ?
Если да, то можно вот так:
Code:
Public Var() As Variant
Public VarCount As Integer
Sub Get_VarBlock()
Set ws = ThisWorkbook.Worksheets("SAPBEXqueries")
lLRow = ws.Range("FY4").End(xlDown).Row
ID = ws.Range("FY4").End(xlDown).Value
i = lLRow + 1
Do
i = i - 1
Loop While ID = ws.Range("FY" & i).Value
lFRow = i + 1
VarCount = lLRow + 1 - lFRow
ReDim VarArr(1 To lLRow + 1 - lFRow, 1 To 6)
j = 1
For i = lFRow To lLRow
Select Case ws.Range("FZ" & i).Value
Case "ZCOMP_C1"
VarArr(j, 1) = "Балансовая единица"
Select Case ws.Range("GC" & i).Value
Case "I"
Select Case ws.Range("GD" & i).Value
Case "BT"
VarArr(j, 2) = "Ограничение включает диапазон:"
VarArr(j, 3) = ws.Range("GF" & i).Value
VarArr(j, 4) = ws.Range("GI" & i).Value
VarArr(j, 5) = ws.Range("GH" & i).Value
VarArr(j, 6) = ws.Range("GK" & i).Value
Case "EQ"
VarArr(j, 2) = "Ограничение включает значение:"
VarArr(j, 3) = ws.Range("GF" & i).Value
VarArr(j, 4) = ws.Range("GI" & i).Value
End Select
Case "E"
Select Case ws.Range("GD" & i).Value
Case "BT"
VarArr(j, 2) = "Ограничение исключает диапазон:"
VarArr(j, 3) = ws.Range("GF" & i).Value
VarArr(j, 4) = ws.Range("GI" & i).Value
VarArr(j, 5) = ws.Range("GH" & i).Value
VarArr(j, 6) = ws.Range("GK" & i).Value
Case "EQ"
VarArr(j, 2) = "Ограничение исключает значение:"
VarArr(j, 3) = ws.Range("GF" & i).Value
VarArr(j, 4) = ws.Range("GI" & i).Value
End Select
Case ""
VarArr(j, 2) = "Без ограничения"
End Select
End Select
j = j + 1
Next i
Var = VarArr
End Sub
Структуру листа "SAPBEXqueries" для BW 3.x можно посмотреть здесь.
http://sapboard.ru/forum/viewtopic.php?p=58979#p58979К сожалению доступа к BW 7.0 сейчас не имею и сказать как там можно сделать то, что вам нужно не могу.
Может коллеги подскажут.