Ich glaube nicht, dass dies ein Duplikat ist, aber ich entschuldige mich, wenn es ist.Anwendungsdefiniert oder objektdefiniert für variable Zeilen und mehrere Blätter
Ich bin sehr neu in VBA, so dass ich hoffte, dass jemand über meinen Code aussehen haben und mir helfen, die anwendungsdefinierte Fehler zu beheben oder objekt definiert ich auf der Linie bin immer unter:
Set aCell = ActiveSheet.Range("P10:" & Cells(i, 0).Address) 'Trying to select rows based on value in i starting with P10
hier ist die vollständige Makro:
Sub freeze2()
Dim ws As Worksheet
Dim aCell As Range
Dim strg() As String
Dim count As Integer
Dim i As Integer
Dim size As Integer
size = ActiveSheet.Range("B9:B79").Find(What:=Worksheets("Email Template").Range("B5").Value) 'Looks for current fiscal week
Debug.Print size
count = 0
For i = 1 To size 'should represent current fiscal week back to first week of year, so for this week the range would be 1 to 40
Next i
ReDim numbers(size)
' Get each RED sheet
For Each ws In Worksheets
If ws.Tab.Color = 255 Then ' Find only RED tabs
Debug.Print "-----------------------------------------------------------------------"
Debug.Print "Name of Red Sheet: '" & ws.Name & "'" ' Debug...
Sheets(ws.Name).Select
Set aCell = ActiveSheet.Range("P10:" & Cells(i, 0).Address) 'Trying to select rows based on value in i starting with P10
If Not aCell Is Nothing Then
Set aCell = Range("H10") 'Taking acell and hopefully copying as values to H10
'Selection.copy
'Range("H10").Select
'Selection.PasteSpecial xlPasteValues
Else
End If
Application.CutCopyMode = False ' Unselect cell
End If
Next ws
End Sub
Alles, was ich versuche, ist, einen Zellbereich auszuwählen (immer eine Spalte, aber die Zeilengröße ändert sich jede Woche) und kopiert diese Werte in eine andere Spalte. Dieser Bereich ist auf allen roten Blättern an der gleichen Stelle.
Ihre Referenz ist nicht gültig. Die Zellenindizierung beginnt bei 1, nicht bei 0. –
Es gibt keine 0-Spalte. Spalte A ist 1 und so weiter. Ändern Sie die 'ActiveSheet.Range (" P10: "& Cells (i, 0) .Address)' zu 'ActiveSheet.Range (" P10 ", ActiveSheet.Cells (i, 16))' –
wow, je mehr ich las weniger verstehe ich. Ihre for-Schleife macht nichts. Die i-Referenz in der gestrichelten Linie ist immer "Größe + 1". –