2016-10-14 2 views
0

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.

+1

Ihre Referenz ist nicht gültig. Die Zellenindizierung beginnt bei 1, nicht bei 0. –

+1

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))' –

+1

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". –

Antwort

0

Ich wollte diese aktualisieren Ryans bearbeiten

Set Acell = ActiveSheet.Range zeigen ("P10:" & Cells (i, 1) .Address) ‚Der Versuch, um Zeilen auszuwählen, basierend auf dem Wert in i mit Start P10

+0

Sie sollten diese Videoserie auf YouTube sehen: [Excel VBA Introduction ] (https://www.youtube.com/playlist?list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5) –

+0

Danke Thomas, ich werde mir die ansehen! – HeatherRW

Verwandte Themen