Excel / VBA - Markera text som innehåller och flytta till sida2

Trädvy Permalänk
Medlem
Plats
Metropolis Zone - Sonic the Hedgehog 2 [OST]
Registrerad
Aug 2003

Excel / VBA - Markera text som innehåller och flytta till sida2

Hej!

Jag har suttit med detta dokument ett bra tag och allt fungerar förutom nedan. Jag vill att när det finns rader som har #N/A i sig så ska dessa kopieras och klistras in längst nereexcelsida nr2, vilket fungerar. MEN om det inte blir några rader som innehåller #N/A så får jag error, jag vill då att den inte klistrar in nått för det finns inget att klistra in.

ActiveSheet.Range("A:A").AutoFilter Field:=1, Criteria1:="#N/A", Operator:=xlOr, Criteria2:="#SAKNAS!"

Dim rng As Range
Set rng = ActiveSheet.UsedRange
Set rng = rng.Offset(1).Resize(rng.Rows.Count - 1).Find(What:="#N/A", LookAt:=xlPart, LookIn:=xlValues)

rng.Select
Selection.Copy

Sheets("Latest masterlist").Select
Dim LASTROW2 As Long
LASTROW2 = Cells(Rows.Count, 1).End(xlUp).Row
Rows(LASTROW2).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

<3

° Part of CalvinClown Corp. Computer geek since 1996. °
✿ Workstation No. Ⅸ. I7 4770k 4.2GHZ • 32GB DDR3 • 512GB SSD • ATI 290 mod.
✿ HTPC. DELL Optiplex 745 • Q6700 • 8GB DDR3. • 500GB HDD • Nvidia Quadro 600
#RIP NAS. Buffalo LinkStation™ 220.

Trädvy Permalänk
Medlem
Plats
Hemma
Registrerad
Dec 2006
Skrivet av calvinclown:

Hej!

Jag har suttit med detta dokument ett bra tag och allt fungerar förutom nedan. Jag vill att när det finns rader som har #N/A i sig så ska dessa kopieras och klistras in längst nereexcelsida nr2, vilket fungerar. MEN om det inte blir några rader som innehåller #N/A så får jag error, jag vill då att den inte klistrar in nått för det finns inget att klistra in.

ActiveSheet.Range("A:A").AutoFilter Field:=1, Criteria1:="#N/A", Operator:=xlOr, Criteria2:="#SAKNAS!"

Dim rng As Range
Set rng = ActiveSheet.UsedRange
Set rng = rng.Offset(1).Resize(rng.Rows.Count - 1).Find(What:="#N/A", LookAt:=xlPart, LookIn:=xlValues)

rng.Select
Selection.Copy

Sheets("Latest masterlist").Select
Dim LASTROW2 As Long
LASTROW2 = Cells(Rows.Count, 1).End(xlUp).Row
Rows(LASTROW2).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

<3

En vild gissning som inte är testad:

Citat:

ActiveSheet.Range("A:A").AutoFilter Field:=1, Criteria1:="#N/A", Operator:=xlOr, Criteria2:="#SAKNAS!"

Dim rng As Range
Set rng = ActiveSheet.UsedRange
Set rng = rng.Offset(1).Resize(rng.Rows.Count - 1).Find(What:="#N/A", LookAt:=xlPart, LookIn:=xlValues)

on error goto end

rng.Select
Selection.Copy

Sheets("Latest masterlist").Select
Dim LASTROW2 As Long
LASTROW2 = Cells(Rows.Count, 1).End(xlUp).Row
Rows(LASTROW2).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

end:

Alltså om det blir fel i koden ska den hoppa till sista raden och avsluta koden. Men det förutsätter att det endast blir fel på grund av att den inte hittar något att kopiera.
Blir det fel i koden av en annan anledning är detta inte en bra lösning.

EDIT: nu när jag tänker på det så kanske "end" är ett dumt ord att använda. Det kanske används av VBA. Minns inte...
Men om det blir strul så byt ut de två "end" mot "boooboooo" eller nått..