/ / VBA прост макро за копиране на формули - excel, excel-vba, vba

VBA прост макро за копиране на формули - excel, excel-vba, vba

Бих искал да копирам формули от колона в ред. Формулите нямат $ подпис в адреса, така че не мога да използвам специални опции за поставяне, защото ще промени адреса във формулите на всяка клетка.

Опитвам се да стартирам макрос, но копира само последната клетка от колоната към всеки един по ред.

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