Wpis z mikrobloga

ogolnie kod wyglada mniej wiecej tak:

lastcodecopy = Worksheets("skanowanekody").Range("A12")

Range(Cells(2, 6), Cells(lastcodecopy + 2, 6)).Select
Selection.Copy
Range(Cells(2, 7), Cells(2, 7)).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks

:=False, Transpose:=False

No i teraz musze tu dolozyc odwolanie do konretnego arkusza, ale tez nie moge przechodzic do tego arkusza, to musi dzialac w tle... no i stanalem w miejscu na tym
@Miszcz_Joda:

Możesz spróbować coś takiego:

dim ws as Worksheet
set ws = ThisWorkbook.Worksheets("skanowane_kody")
'Poniżej masz kopiowanie z miejscem docelowym gdzie dane mają trafić
ws.Cells(Cell(2,6), Cell(lastcodecopy + 2, 6).Copy ws.Cells(Cell(2,7))

Jeśli chcesz użyć Range to np:

ws.Range("F2:G2").Copy ws.Range("H3:I3")
@Miszcz_Joda: Kod na screenie wywala błąd, ponieważ właściwość Range dotyczy arkusza, który podałeś, natomiast właściwości Cells - skoro nie mają podanego arkusza - dotyczą innego arkusza (a którego dokładnie, to zależy od rodzaju modułu w którym kod się znajduje).
Zatem kod powinien wyglądać tak:

Worksheets("skanowane_kody").Range(Worksheets("skanowane_kody").Cells(2, 7), Worksheets("skanowane_kody").Cells(2, 7)).PasteSpecial ....
Wygląda dość paskudnie, dlatego są 2 wyjścia:
a) przypisać arkusz do zmiennej (jak sugerowane wyżej), wtedy otrzymamy:

ws.Range(ws.Cells(2, 7), ws.Cells(2, 7)).PasteSpecial ....
@1001001: dziekuje za podpowiedz
@brak_nicku: tez wyczytalem te rozwiazanie po pol dnia czytania, teraz smiga az milo, dziekuje za pomoc :)

Range(Worksheets("skanowanekody").Cells(2, 6), Worksheets("skanowanekody").Cells(lastcodecopy + 2, 6)).Copy
Worksheets("skanowane_kody").Range("G2").PasteSpecial Paste:=xlPasteValues
teraz smiga az milo, dziekuje za pomoc :)


@Miszcz_Joda: Nie ma za co, to że działa to najważniejsze, ale mogę też udzielić paru wskazówek, które ułatwią życie w przyszłości.

1) W zaprezentowanym (krótkim) kodzie masz sporo magic numbers. "G2", "A12", 2, 6. Teraz przychodzi moment, gdy trzeba dostawić kolumnę z lewej strony, albo wiersz u góry i trzeba przeglądać i poprawiać kod. Przy kilku linijkach to żaden problem, ale gdy
@brak_nicku super dziękuję za rady, na pewno mi sie przydadzą. Mam tez pytanie. Jesli nazwe w arkuszu komórkę np. "kodkreskowy" potem w kodzie VBA umieszcznie ten adres powiedzymy. .... Range("kodkreskowy").... I następuje taka sytuacja, ze wcześniej kodkreskowy byl pod komórka A5 a teraz usuwam z tamtej komorki te nazwe i nazywam tak komórkę B5 to rozumiem, ze wtedy kod z automatu odniesie się do nowej komórki?