Globaler Array
29.02.2008 14:22:00
Fred
bisher habe ich Zwischenvariablen immer irgendwo in Sheets kopiert und dann darüber wieder darauf zugegriffen. Eigentlich sollte das aber ja einfacher mit ARRAYS gehen. Dazu habe ich eine Frage:
Folgende Schleife kopiert mir bestimmte Tabellen in ein neues Sheet (ist nur ein Auszug, die Schleife funktioniert aber - zumindest gibt es keine Fehlermeldung):
Public Sub copytablesforprint()
Dim i As Integer
Dim druckbereich, drucksheets
Dim anzdb As Integer
Dim letztezeile As Integer
Dim sPrinter As String
Application.ScreenUpdating = False
'Berichte_drucken.Visible = False
' HIER WIRD FESTGELEGT, WO SICH ZU KOPIERENDE TABELLEN BEFINDEN
drucksheets = Array("GuV", "GuV", "Bilanz", "Bilanz", "KFR", "KFR") '
druckrange = Array("B10:M45", "B49:M76", "B10:M72", "B47:M60", "B10:M54", "B47:M60")
anzdb = Application.CountA(druckrange) ' Anzahl der verschiedenen Druckbereiche
' Erstelle temporäres Sheet [Sheets("tempdrucken")]
Application.DisplayAlerts = False
On Error Resume Next
Sheets("tempdrucken").Delete
Worksheets.Add
ActiveSheet.Name = "tempdrucken"
Application.DisplayAlerts = True
' Kopiere gewünschten Tabellen in temporäres Sheet
letztezeile = 0 ' Initialisierung der Variablen
Sheets("tempdrucken").Activate
nseiten = 1
For i = 1 To anzdb
If Berichte_drucken.Controls("Checkbox" & i).Value = True Then
'Sheets(drucksheets(i - 1)).Visible = xlsheetsvisible
'Sheets(drucksheets(i - 1)).Range(druckrange(i - 1)).Select
'Selection.SpecialCells(xlCellTypeVisible).Select
'Selection.Copy
Sheets(drucksheets(i - 1)).Range(druckrange(i - 1)).Copy
With ActiveSheet.Cells(letztezeile + 2, 2)
.PasteSpecial Paste:=xlValues
.PasteSpecial Paste:=xlFormats
End With
Application.CutCopyMode = False
If i
Auf den Array "zeilenindex" möchte ich in anderen Makros wieder zugreifen können. Ich habe diesen deshalb in einem Modul folgendermaßen definiert
Public zeilenindex As Variant
Leider kann ich aber in einem anderen Makro nicht darauf zugreifen. Was mache ich falsch? Definiere ich den Array falsch, oder "fülle" ich ihn falsch? Für Hilfe wäre ich dankbar!!
Gruß
Fred