Eftersom jag har lite VB.Net erfarenhet fick jag till uppgift att korrigera ett VBA Makro någon annan byggt och det lyckades ganska bra förutom en sak. Då antalet rader i Exceldokumentet skiljer sig från gång till gång undrar jag om någon vet en lösning att anväda informationen som jag hämtar enligt nedan. Hu, vilken kod... =) Annars är följande sätt rätt populär i online community: annat tips försöka att inte använda selection... onödigt..Excel VBA makro
<code> Dim a, b As Long
Range("a1").SpecialCells(xlCellTypeLastCell).Select
a = ActiveCell.Address
Range("A2").Select
b = ActiveCell.Address
</code>
Så att jag kan använda den i
<code> ActiveCell.FormulaR1C1 = "=IF(RC[-1]<RC[-4],0,RC[-1])"
Range("A2").Select
Selection.AutoFill Destination:=Range(a:b) </code>
Istället för absoluta referenser typ
<code>ActiveCell.FormulaR1C1 = "=IF(RC[-1]<RC[-4],0,RC[-1])"
Range("A2").Select
Selection.AutoFill Destination:=Range("a2:a465") </code>
Jag vill alltså autofylla en kolumn till sista använda raden.Sv: Excel VBA makro
Dim a As Range, b As Range
set a = Range("a1").SpecialCells(xlCellTypeLastCell)
set b = Range("A2")
Range(a, b).FormulaR1C1 = "..."Sv:Excel VBA makro
<code>
Dim lnLastRow As Long
lnLastRow = Cells(Rows.Count, "A").End(xlUp).Row
</code>
Dock bör den inte användas när Excel 12 kommer med 1,2 miljoner rader!!
Mvh
DennisSv: Excel VBA makro
<code>
Range("A2").Select
Selection.AutoFill Destination:=Range("a2:a465") </code>
Istället
<code>
Range("A2").AutoFill Destination:=Range("a2:a465") </code>
samma med
<code>
Range("A2").Select
b = ActiveCell.Address
</code>
</code>
Istället:
<code>
b = Range("A2").Address
</code>
ni förstår säkert... vill ju inte referera objekt i onödan... normalt sätt kanske inte så viktigt men hamnar det i en loop ...
// WEndel