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:
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 .
Žiadne komentáre:
Zverejnenie komentára
Poznámka: Komentár môže zverejniť iba člen tohto blogu.