Banner

štvrtok, 15. mája 2014

Meníme odkazy v bunkách (Doláre - $$ mezi písmenkami a číslami) vo vzorcoch

 

V praxi sa častokrát stáva, že vytvoríte istý štandardný výstup a nechcete aby Vám niektorý z proaktívnych nešťastníkov omylom pozmenil vzorce. Niekedy sa to Bohužiaľ stáva aj samotnéhmu analytikovi (môj prípad ^_^ ) .

Z toho dôvodu, ak máte všetko navzorčekované správne si môžete pozmeniť odkazy buniek takto:

image

Prejdime ku kódu:

Sub Konverzia()

Dim RNG As Range
Dim c
Dim T As Integer

'======================Definujeme typ ukotvenia===========================
T = Application.InputBox("Ako si chcete zafixovať danú bunku?" & vbCrLf & vbCrLf & _
Chr(9) & "Pre $A$1 zvoľte 1" & vbCrLf & _
Chr(9) & "Pre A1 zvoľte 2" & vbCrLf & _
Chr(9) & "Pre $A1 zvoľte 3" & vbCrLf & _
Chr(9) & "Pre A$1 zvoľte 4", "Typ ukotvenia", 1, , , , , 1)


'=============Definujeme oblasť, ktorú chceme ukotviť===========================
Set RNG = Application.InputBox("Definujte oblasť, v ktorej chcete ukotviť bunky vo vzorcoch", _
"Znema vzorcov", , , , , , 8).SpecialCells(Type:=xlFormulas)

'======================ukotvujeme oblasť===========================
For Each c In RNG
    If c.HasFormula Then
        If Len(c.FormulaArray) < 255 Then
            Select Case T

                Case 1
                    c.FormulaArray = Application.ConvertFormula(Formula:=c.Formula, _
                    FromReferenceStyle:=xlA1, _
                    ToReferenceStyle:=xlA1, ToAbsolute:=xlAbsolute)
                Case 2
                    c.FormulaArray = Application.ConvertFormula(Formula:=c.Formula, _
                    FromReferenceStyle:=xlA1, _
                    ToReferenceStyle:=xlA1, ToAbsolute:=xlRelative)
                Case 3
                    c.FormulaArray = Application.ConvertFormula(Formula:=c.Formula, _
                    FromReferenceStyle:=xlA1, _
                    ToReferenceStyle:=xlA1, ToAbsolute:=xlAbsRowRelColumn)
                Case 4
                    c.FormulaArray = Application.ConvertFormula(Formula:=c.Formula, _
                    FromReferenceStyle:=xlA1, _
                    ToReferenceStyle:=xlA1, ToAbsolute:=xlRelRowAbsColumn)
                Case Else
                    MsgBox "Nezvolili ste správny typ ukotvenia", vbCritical
                    Exit Sub
       
                End Select
           
        End If
    End If
Next
c

End Sub

Avšak obmedzujúcou podmienkou použitia procedúry Application.ConvertFormula je maximálny počet znakov v bunke, ktorý nepresahuje počet 255. Kliknutím na možnosť Download si stiahnete template súbor, kde som prirpavil ukážku vzorcov a dané marko. V prípade dotazov sa neváhajte opýtať na Facebook-u Winking smile.

 

            downloads_normal

Žiadne komentáre:

Zverejnenie komentára

Poznámka: Komentár môže zverejniť iba člen tohto blogu.