Как определить последний столбец (последний столбец со значением), используя VBA в Excel? - PullRequest
0 голосов
/ 22 февраля 2012

У меня вопрос, интересно, может ли кто-нибудь мне помочь.

Я занимаюсь проектом, который требует получения сводных результатов испытаний.Мой поток выглядит следующим образом:

Сначала мне нужно будет открыть собранные результаты тестирования, затем создать сводную таблицу, после настройки в соответствии с тем, что мне нужно просмотреть, я скопирую таблицу в другую электронную таблицу.В этой электронной таблице некоторые имена будут заменены на нужные имена, и, наконец, они будут скопированы в сводную таблицу.Затем мне нужно будет также составить сводку в%.

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

Например, мы можем иметь enter image description here

В другом случае мы можем иметь

enter image description here

Если вы заметиливторое изображение имеет больше используемых столбцов.Поэтому мне было интересно, можете ли вы, ребята, поделиться со мной информацией, чтобы определить последний доступный столбец с копируемыми данными.

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

В настоящее время я использую «Диапазон (A1: Z1000000)», который для меня совершенно невозможен, поскольку я не могудействительно найти% вручную.

Кстати, мне нужно это в коде VBA.

Буду признателен за все мнения и варианты, представленные!Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Это должно сработать:

Sub test()

  Dim maxColumn As Long

  'Create the table here
  maxColumn = getMaxUsedColumnNumber("PivotTableSheet")
  'do what you need with the number

End Sub

Function getMaxUsedColumnNumber(sheetName As String) As Long
  With Sheets(sheetName)
    getMaxUsedColumnNumber = .Cells.Find(What:="*", after:=.Range("A1"), LookIn:=xlFormulas, _
            SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
  End With
End Function
0 голосов
/ 22 февраля 2012

Вы можете использовать .SpecialCells () следующим образом:

ActiveSheet.UsedRange.SpecialCells(xlLastCell).Column

Кроме того, взгляните на свойство ColumnRange объекта PivotTable. У него есть свойство Count, которое будет возвращать количество столбцов в сводной таблице, что также может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...