我想将公式从列复制到行。公式在地址中没有 $ 签名,所以我不能使用特殊的粘贴选项,因为它会更改每个单元格的公式中的地址。
我尝试运行宏,但它只将列中的最后一个单元格复制到行中的每个人。
Sub Zamiana()
For Each y In Range("A1:B1")
For Each X In Range("A2:A3")
y.Formula = X.Formula
Next
Next
End Sub
提前感谢您的帮助:)
一种简单的方法是通过变量数组和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
尝试添加两个索引,一个用于列,一个用于行并删除一个 for 循环,就像这样
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