/ / Zakres, Wybierz, zmień zawartość, wyrównanie lub przesunięcie? - excel, vba, excel-vba

Zakres, Wybierz, zmień zawartość, wyrównanie lub przesunięcie? - excel, vba, excel-vba

Mam sprawę w momencie, kiedy się przeprowadzamw dół kolumny z nazwami poniżej i klikając makro, które następnie oznacza wskaźnik z 35, kilka kolumn w dół w prawo. Ze względu na charakter strony, chcę policzyć, jak daleko jestem na liście, kiedy przeglądam nazwę i aktywuję makro. To, co chcę zrobić, to zamiast tylko wybrać i zaznaczyć jedną nazwę, chcę zaznaczyć ten wiersz i wszystkie poprzednie wiersze za pomocą 35. W ten sposób wykresy i obliczona wartość COUNTA zmieniają się wraz z postępem recenzenta, gdy on / ona jedzie w dół arkusza.

         Totals X   Y   Z   T   Marker  Indicator
TOM     xxxxxxx xxxxxxx xxxxxxx xxxxxxx     35
HARRY   xxxxxxx xxxxxxx xxxxxxx xxxxxxx
PAUL    xxxxxxx xxxxxxx xxxxxxx xxxxxxx
PETER   xxxxxxx xxxxxxx xxxxxxx xxxxxxx     35
TIM     xxxxxxx xxxxxxx xxxxxxx xxxxxxx

Moje skrypty dla makra są następujące:

Sub tester2()
Set Rng = ActiveCell
"
" tester2 Macro
"

"
ActiveCell.Offset(0, 6).Select

With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0

ActiveCell.Value = 35

Application.Goto Rng

End With
End Sub

Następnie jako FYI, moje makro eksportowe, które ma tylko eksportować elementy zamówienia, które są podświetlone ręcznie (nie są to automatycznie wypełnione poprzednie).

Sub export()

Dim cell As Range
Dim lastRow As Long, i As Long

lastRow = Range("A" & Rows.Count).End(xlUp).Row
i = 1

For Each cell In Sheets(1).Range("G1:G" & lastRow)
If cell.Value = 35 Then
cell.EntireRow.Copy Sheets(2).Cells(i, 1)
i = i + 1
End If
Next

End Sub

Więc to, co myślałem, jest możliwe, dlamoje pierwsze makro, być w stanie mieć jeden znacznik (35) w 6 kolumnach po prawej. Niech wszystkie poprzednie znaczniki również zostaną zaznaczone, a może tylko znacznik w 7. kolumnie dla tego wiersza. W ten sposób obliczona liczba wierszy zostanie uruchomiona w nowej kolumnie 6. I mój eksport wyniesie kolumnę 7.

Odpowiedzi:

0 dla odpowiedzi № 1

Można to łatwo uprościć dość łatwo, aby wpłynąć na komórki od 2 do bieżącego rzędu, sześć kolumn po prawej stronie

Sub tester2()

Dim col As Integer
col = ActiveCell.Column + 6
Dim row As Integer
row = ActiveCell.row
Dim rng As Range
Set rng = Range(Cells(2, col), Cells(row, col))

For Each c In rng
With c
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic
.Interior.Color = 65535
.Interior.TintAndShade = 0
.Interior.PatternTintAndShade = 0
.Value = 35
End With
Next
End Sub

Jeśli chcesz, aby zapisał, gdzie był ostatni eksport, możesz dodać coś takiego -

ActiveCell.Offset(, 7) = "export"
Range(Cells(1, col + 1), Cells(row - 1, col + 1)).Clear