Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2019, 14:36   #1
dwmair23
Пользователь
 
Регистрация: 22.11.2018
Сообщений: 13
По умолчанию При использовании "Transpose" возникает ошибка

Имеется вот такой код:
Код:
Option Explicit
 
Sub Dw()
Dim di As Object, i&, j&, x
Dim lCol As Long
Dim n1 As Variant
    
  Set di = CreateObject("scripting.dictionary")
  di.comparemode = vbTextCompare
  Range("C:Z").ClearContents
  For i = 2 To Worksheets.Count
    With Worksheets(i)
      Worksheets(1).Cells(2, i + 1) = .Name
      For Each x In .Range("B2", .Cells(.Rows.Count, 2).End(xlUp)).Value2
        di(x) = 0
      Next
    End With
  Next
  j = Cells(Rows.Count, 1).End(xlUp).Row
  For Each x In Range("A3:A" & j).Value2
    If di.exists(x) Then di.Remove x
  Next
  If di.Count Then
    With Cells(j + 1, 1).Resize(di.Count)
      .Value = WorksheetFunction.Transpose(di.keys)
      .Font.Color = vbRed
    End With
  Else
    MsgBox "Новых наименований нет", vbInformation
  End If
  Range("C3").Resize(j - 2 + di.Count, i - 2).Formula = _
    "=IFERROR(VLOOKUP($A3,INDIRECT(""'""&C$2&""'!B:C""),2,),""-"")"
    
 lCol = Worksheets(1).Cells(2, Columns.Count).End(xlToLeft).Column
 Worksheets(1).Cells(2, lCol + 1) = "Âñåãî"
 Worksheets(1).Cells(2, lCol + 2) = "ÐåçóëüòГ*ГІ"
 
 Cells(3, lCol + 1).Resize(j - 2 + di.Count, 1).FormulaR1C1 = "=SUM(RC3:RC[-1])"
 Cells(3, lCol + 2).Resize(j - 2 + di.Count, 1).FormulaR1C1 = "=rc[-1]-rc2"
 
End Sub
В строчке
Код:
.Value = WorksheetFunction.Transpose(di.keys)
возникает ошибка, если длина строки более 255 символов.

Вопрос - как можно обойти это ограничение?
dwmair23 вне форума Ответить с цитированием
Старый 21.03.2019, 15:02   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Переложить например циклом. Можно если данных много использовать промежуточный массив.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 21.03.2019, 20:26   #3
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

кросс http://www.cyberforum.ru/ms-excel/thread2401138.html
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Название вкладки в браузере Delphi. возникает ошибка "Invalid class typecast" Жора1111 Помощь студентам 1 25.07.2017 01:28
Delphi. Возникает ошибка "Invalid floating point operation" gusevalelya Помощь студентам 1 03.04.2016 10:41
При работе с компонентом IdHTTP(indy) возникает ошибка "Out of memory". HelloWold C++ Builder 29 22.09.2015 19:11
IBExpert, InterBase в Делфи. Ошибка "TPB Constant() is unknown" при использовании хранимой процедуры new1 БД в Delphi 8 27.03.2014 20:19
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder AleksP C++ Builder 7 11.04.2009 13:06