1. Eine Spalte bis zur letzten beschriebenen Zelle anzusprechen range("B11:column.count.end.xlup")? Keine Ahnung wie die Syntax ist.
Option Explicit
Sub Test()
Dim rngCell As Excel.Range
With Worksheets("Tabelle1")
'liefert letzte Zelle mit Inhalt in Spalte A (Suche erfolgt von unten nach oben)
Set rngCell = .Cells(.Rows.Count, "A").End(xlUp)
End With
With Worksheets("Tabelle1")
'liefert letzte Zelle mit Inhalt in Zeile 1 (Suche erfolgt von rechts nach links)
Set rngCell = .Cells(1, .Columns.Count).End(xlToLeft)
End With
Dim rngData As Excel.Range
With Worksheets("Tabelle1")
Set rngCell = .Range("B2")
Set rngData = .Range(rngCell, .Cells(.Rows.Count, rngCell.Column).End(xlUp))
If rngData.Row < rngCell.Row Then Set rngData = rngCell
'* Ist in Spalte B die letzte Zelle mit Inhalt B10,
' dann referenziert rngData den Bereich B2:B10.
'* Ist Spalte B komplett ohne Inhalt,
' dann referenziert rngData den Bereich/Zelle B2.
' (ohne die If-Anweisung wäre es B1; sie dient also der Begrenzung)
End With
End Sub
2. Die Messdaten in die Spalte einzufügen und dann für den nächsten Block an Messwerten des nächsten gesuchten Wertes eine Spalte weiter nach rechts zu springen
Entweder du steuerst das über den Schleifen-Index deiner For-Schleife, oder du verrückst den Zielbereich pro Schleifendurchgang. Das ist deine Entscheidung.
Option Explicit
Sub Test()
Dim rngData As Excel.Range
Dim rngTarget As Excel.Range
'<blabla~ Code hier>
For i = 3 To 5
'<blabla~ Code hier>
'<Daten von rngData nach rngTarget kopieren>
'Zielbereich nach rechts, um Anzahl der Spalten im Datenbereich, verrücken
Set rngTarget = rngTarget.Offset(0, rngData.Columns.Count)
Next
End Sub
3. Eine Spalte von Messwerten mit einem Faktor zu multiplizieren.
Option Explicit
Sub Test()
Dim rngQuelle As Excel.Range
Dim rngZiel As Excel.Range
Set rngQuelle = Range("A1:C1")
Set rngZiel = Range("A2:C2")
rngQuelle.Interior.Color = rgbYellow
rngZiel.Interior.Color = rgbOrange
'Beispieldaten setzen
rngQuelle.Value = Array(10, 20, 30)
rngZiel.Value = Array(0.5, 0.5, 0.5) 'Faktor 0,5 (50%)
'Kopieren und dabei mit Faktor multiplizieren
Call rngQuelle.Copy
Call rngZiel.PasteSpecial(xlPasteFormulasAndNumberFormats, xlPasteSpecialOperationMultiply)
'den "Ameisen-Rahmen", der durch das Kopieren jetzt aktiv ist, ausschalten
Application.CutCopyMode = False
End Sub
|