Бих искал да копирам формули от колона в ред. Формулите нямат $ подпис в адреса, така че не мога да използвам специални опции за поставяне, защото ще промени адреса във формулите на всяка клетка.
Опитвам се да стартирам макрос, но копира само последната клетка от колоната към всеки един по ред.
Sub Zamiana()
For Each y In Range("A1:B1")
For Each X In Range("A2:A3")
y.Formula = X.Formula
Next
Next
End Sub
Благодаря предварително за помощ :)
Отговори:
1 за отговор № 1Един прост метод е да се прехвърлят формулите чрез вариантен масив и transpose
функция.
Като този:
Sub TransposeFormulas()
Dim rSrc As Range
Dim rDst As Range
Dim vSrc As Variant
Set rSrc = Range("A1:B1")
Set rDst = Range("A2") " top left cell of destination
vSrc = rSrc.Formula " copy source formulas into a variant array
" size the destination range and transpose formulas into it
rDst.Resize(UBound(vSrc, 2), UBound(vSrc, 1)).Formula = _
Application.Transpose(vSrc)
End Sub
0 за отговор № 2
опитайте да добавите два индекса, един за колона и един за ред и отпадането на за линия, нещо като това
Sub Zamiana()
iR = 1
iC = 0
For Each y In Range("A1:B1")
r = y.Row + iR
c = y.Column - iC
Cells(r, c).Formula = y.Formula
iR = iR + 1
iC = iC + 1
Next
End Sub