Код Excel для вставки данных в первый неиспользуемый столбец - PullRequest
1 голос
/ 21 марта 2012

В настоящее время я пишу некоторые процедуры для автоматизации генерации сводных таблиц. Чтобы сводная таблица работала, столбец, который я хочу вставить, должен быть смежным с существующими данными. Как заставить Excel вставить эти данные в первый неиспользуемый столбец?

Я нашел следующую ссылку онлайн:

Function xlLastCol(Optional WorksheetName As String) As Long

 ' Author:  MWE
 ' http://www.vbaexpress.com/kb/getarticle.php?kb_id=418

 '       finds the last populated col in a worksheet

If WorksheetName = vbNullString Then WorksheetName = ActiveSheet.Name
With Worksheets(WorksheetName)
    On Error Resume Next
    xlLastCol = .Cells.Find("*", .Cells(1), xlFormulas, _
    xlWhole, xlByColumns, xlPrevious).Column
    If Err <> 0 Then xlLastCol = 0
End With

End Function

Но он всегда возвращает какое-то странное число, которое определенно НЕ является последним использованным столбцом. (Первый неиспользуемый столбец будет просто последним использованным столбцом + 1)

Ответы [ 3 ]

0 голосов
/ 21 марта 2012

Чтобы получить последний доступный столбец в строке 1, используйте этот код

LastCol = Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column + 1
0 голосов
/ 30 марта 2012

Код, который я разместил в соответствии с @brettdj, работает.Как-то рядом с самой последней колонной была цифра «1».Возможно, он был там, чтобы выполнять какую-то функцию в макросе или что-то еще, но я не верю, что он все еще используется.

0 голосов
/ 21 марта 2012

Try ...

xlLastCol = ActiveSheet.UsedRange.Columns.Count

и

xlLastCol = ActiveSheet.Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column

Я не проверял, но оба должны работать.

Дайте мне знать, если у вас возникнут проблемы, и я сам смогу потратить некоторое время на его тестирование!

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