Я относительно новичок во всем этом. У меня есть код, который берет информацию, которая есть на листе, и настраивает ее для печати. Данные для этого рабочего листа копируются из сводной таблицы на другой лист с формулами Excel. Этот лист и его сводная таблица обновляются сначала при выборе местоположения, затем пользователь может нажать кнопку, которая адаптирует этот связанный лист к содержащейся в нем информации и настроит его для печати.
Sub PrintIfNotEmpty()
Dim ra As Range, re As Range, i As Long, R As Range
ShInv.Rows("1:228").EntireRow.Hidden = False
Call Entry_Point
With ShInv
Set ra = .Range("A20:A228")
For Each re In ra
If IsEmpty(re.Value) Or re.Value = vbNullString Then
re.EntireRow.Hidden = True
End If
Next re
End With
With ShInv.PageSetup
.Orientation = xlPortrait
End With
ShInv.PrintPreview
Call Exit_Point
End Sub
Этот код работает нормально, если я перехожу через него (F8), он работает нормально, если я нажимаю кнопку воспроизведения в разделе кодирования VBA. Как только я нажимаю кнопку, НИЧЕГО не делает. Он показывает круг, как будто думает, и говорит, что выполняет работу, но НЕТ ... На затронутом листе не происходит никаких изменений.
Я не понимаю, что делать дальше. В некоторых местах есть 228 продуктов, в некоторых - 1. Мне нужен код для адаптации рабочего листа, чтобы он печатал только то, что необходимо для инвентарного листа.
Кроме того, у меня есть список EXCEL для выбора на моей панели инструментов (ActiveX управление заблокировано для нас). Каким будет действие рабочего листа при выборе элемента из раскрывающегося списка? Это не SelectionChange, так как это действие не запускает макрос, когда выбран другой элемент в списке (ie список изменяется). Это вызывает действие только в том случае, если список изменяется, пользователь переходит на вкладку со списком, а затем снова щелкает по списку. Я просто хочу, чтобы это происходило сразу после изменения списка без дополнительных действий.