В настоящее время я пишу некоторые процедуры для автоматизации генерации сводных таблиц.
Чтобы сводная таблица работала, столбец, который я хочу вставить, должен быть смежным с существующими данными. Как заставить 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)