Deselect a worksheet?
On May 4, 6:35*pm, GS wrote:
What you're doing is grouping sheets for export to PDF. The way you're
doing it includes Sheets("Tables") if it happens to be the active sheet
when you start 'selecting' other sheets using the 'Replace' arg. This
adds other sheets to the group. Works ok if what you want to do is
include the active sheet, but there's a better way to group sheets
where you can specify which sheets to include OR exclude.
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''
' GroupSheets()
' This procedure requires only the necessary amount of coding be used
' in the Caller. By default, it requires passing only the first arg.
' Use Example: *GroupSheets "Sheet1,Sheet3"
' * * * * * * * creates a group of only those sheets.
' To group all sheets in a workbook except those sheets:
' * * * * * * * GroupSheets "Sheet1,Sheet3", False
' To group all sheets in a workbook pass an empty string:
' * * * * * * * GroupSheets "", False
' You can pass the Wkb arg to specify any open workbook.
' * (The Wkb doesn't need to be active for this purpose)
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''
Public Sub GroupSheets(Sheetnames As String, _
* * * * * * * * Optional bInGroup As Boolean = True, _
* * * * * * * * Optional Wkb As Workbook)
' Groups sheets in Wkb based on whether Sheetnames
' are to be included or excluded in the grouping.
' Arg1 is a comma delimited string. (ie: "Sheet1,Sheet3")
* Dim Shts() As String, sz As String
* Dim i As Integer, wks As Worksheet, bNameIsIn As Boolean
* If Wkb Is Nothing Then Set Wkb = ActiveWorkbook
* For Each wks In Wkb.Worksheets
* * bNameIsIn = (InStr(Sheetnames, wks.name) 0)
* * If bInGroup Then
* * * If bNameIsIn Then sz = wks.name
* * Else
* * * If bNameIsIn Then sz = "" Else sz = wks.name
* * End If
* * If Not sz = "" Then '//build the array
* * * ReDim Preserve Shts(0 To i): *Shts(i) = sz: * i = i + 1
* * End If
* Next
* Wkb.Worksheets(Shts).Select
End Sub 'GroupSheets()
In your case, put the selected sheetnames in a comma delimited string
var and pass it to GroupSheets()...
* Dim sWksList As String
* For Each varItem In lstSubjects.ItemsSelected
* * sWksList = sWksList & "," & lstSubjects.ItemData(varItem)
* Next
* sWksList = Mid$(sWksList, 2) '//remove leading comma
* GroupSheets sWksList
* 'Produce a PDF...
--
Garry
Free usenet access athttp://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc
Thanks, Garry. That works quite well.
|