Kopírování "hodnot" pomocí VBA

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Odpovědět
sideboard
nováček
Příspěvky: 1
Registrován: 24 čer 2019 09:52

Kopírování "hodnot" pomocí VBA

Příspěvek od sideboard »

Ahoj,
potřeboval bych poradit s jedním malým problémem. Stáhnul jsem si z těchto stránek VBA kód, který zkopíruje přesně to, co potřebuji, ale jedna z kopírovaných buněk je aktuální čas (vzorec "nyní()") a mě se kopíruje ten vzorec. Potřeboval bych ale zkopírovat jenom tu hodnotu. Tzn. abych věděl, v kolik hodin jsem to zkopíroval. Myslím, že to bude určitě jednoduché, ale jsem jen začátečník. Díky moc všem za radu.

Vzorec je níže:

Dim rCil2 As Range
Set rCil2 = Sheets("STYLISH").Range("f7")
If Not IsEmpty(rCil2) Then
If Not IsEmpty(rCil2.Offset(1, 0)) Then

Set rCil2 = rCil2.End(xlDown)
End If
Set rCil2 = rCil2.Offset(1, 0)
End If
Sheets("STYLISH").Range(ActiveCell, ActiveCell.Offset(0, -2)).Copy Destination:=rCil2

Set rCil2 = Nothing
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3377
Registrován: 24 říj 2008 19:50

Re: Kopírování "hodnot" pomocí VBA

Příspěvek od atari »

Ahoj. Přečti si pravidla. Na vložení kódu je funkce.

Lze to například takto. Mělo by to fungovat i přes to COPY v jednom řádku, ale to se mi nedaří.

Kód: Vybrat vše

Dim rCil2 As Range
Set rCil2 = Sheets("STYLISH").Range("f7")
If Not IsEmpty(rCil2) Then
If Not IsEmpty(rCil2.Offset(1, 0)) Then

Set rCil2 = rCil2.End(xlDown)
End If
Set rCil2 = rCil2.Offset(1, 0)
End If
rciX = Sheets("STYLISH").Range(ActiveCell, ActiveCell.Offset(0, -2)).Value
rCil2 = rciX

Set rCil2 = Nothing
Naposledy upravil(a) atari dne 22 črc 2019 15:46, celkem upraveno 1 x.
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3377
Registrován: 24 říj 2008 19:50

Re: Kopírování "hodnot" pomocí VBA

Příspěvek od atari »

Technické doplnění. Proměnná "rciX" nemůže být deklarovaná jako RANGE. To mě nějak uniklo.
lubo.
Level 2
Level 2
Příspěvky: 196
Registrován: 27 čer 2013 23:26

Re: Kopírování "hodnot" pomocí VBA

Příspěvek od lubo. »

Je to jesnoduché.

Kód: Vybrat vše

Dim rCil2 As Range
Dim rZdroj As Range
  
  Set rCil2 = Sheets("STYLISH").Range("f7")
  
  If Not IsEmpty(rCil2) Then
    If Not IsEmpty(rCil2.Offset(1, 0)) Then

      Set rCil2 = rCil2.End(xlDown)
    End If
    Set rCil2 = rCil2.Offset(1, 0)
  End If
  Set rZdroj = Sheets("STYLISH").Range(ActiveCell, ActiveCell.Offset(0, -2))
    
  rZdroj.Calculate             ' Aktualizujeme čas
  rCil2.Value = rZdroj.Value   ' Kopírujeme hodnotu
  Set rCil2 = Nothing
  Set rZdroj = Nothing
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3377
Registrován: 24 říj 2008 19:50

Re: Kopírování "hodnot" pomocí VBA

Příspěvek od atari »

Autor se neozval, tak už nám asi nesdělí zda to vyhovuje ...
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Nic se nenačítá ani po resetu biosu pomocí cmos baterie
    od Bliske » » v Problémy s hardwarem
    4 Odpovědi
    6623 Zobrazení
    Poslední příspěvek od pcmaker

Zpět na „Kancelářské balíky“