Функция AddField не работает должным образом - PullRequest
0 голосов
/ 09 мая 2018

У меня есть следующий блок кода, который перебирает поля каждой таблицы и добавляет поля текущей таблицы соответственно, чтобы создать несколько таблиц.

'iterate through every table
For i=1 To arrTCount
  'the arrFF array holds the names of the fields of each table
  arrFF = Split(arrFields(i), ", ")
  arrFFCount = UBound(arrFF)

  'create a tablebox
  Set TB = ActiveDocument.Sheets("Main").CreateTableBox

  'iterate through the fields of the array
  For j=0 to (arrFFCount - 1)
      'add the field to the tablebox
      TB.AddField arrFF(j)
      'Msgbox(arrFF(j))
  Next

  Set tboxprop = TB.GetProperties
  tboxprop.Layout.Frame.ObjectId = "TB" + CStr(i)
  TB.SetProperties tboxprop
Next

Приведенный выше код создает таблицы, но каждый раз с одним полем (последнее отсутствует). Если я изменю цикл For с For j=0 To (arrFFCount - 1) на For j=0 To (arrFFCount), он создаст пустые табличные ящики и, кажется, будет выполняться вечно. Что касается этого изменения, я протестировал имена полей с помощью команды Msgbox(arrFF(j)), и она показывает мне правильные имена полей, так как я хочу, чтобы они были в табличных ящиках в пользовательском интерфейсе QlikView.

Кто-нибудь имеет представление о том, в чем здесь проблема? Могу ли я сделать это по-другому?

Чтобы прояснить ситуацию здесь и то, что я тестировал до сих пор, у меня есть 11 таблиц, из которых я делаю таблицы, и я попробовал использовать только одну из них или некоторые из них. Результат, который я вижу с помощью кода, находится слева, а то, что я ожидаю увидеть, - справа от следующего изображения. Обратите внимание, что количество полей варьируется для каждой таблицы, и в качестве примера приведено только одно из них.

enter image description here

...