TRANSPOSE公式数组
我想使公式数组函数更容易
我写了一些代码,但它不插入我的复制范围,如我所料:
Sub copy_link() Dim copyrange As Range Dim pasterange As Range Set copyrange = Application.InputBox(prompt:="Choose the copy area", Type:=8) Set pasterange = Application.InputBox(prompt:="Choose the paste area", Type:=8) pasterange.FormulaArray = "=TRANSPOSE(copyrange)" End Sub
尝试这个:
pasterange.FormulaArray = "=TRANSPOSE(" & copyrange.Address & ")"
你的方式只是插入单词“复制范围”到Excel中的公式,这是完全没有意义的Excel。 这只有在VBA中才有意义,所以你必须让VBA解释它。 这就是为什么在引号之外。
您还需要检索范围的地址,而不是它的值,因此.Address
部分。
编辑
Sub copy_link() Dim copyrange As Range Dim pasterange As Range Dim RowNum As Long Dim ColNum As Long Set copyrange = Application.InputBox(prompt:="Choose the copy area", Type:=8) Set pasterange = Application.InputBox(prompt:="Choose the paste area", Type:=8) RowNum = copyrange.Rows.Count ColNum = copyrange.Columns.Count pasterange.Cells(1).Resize(ColNum, RowNum).FormulaArray = "=TRANSPOSE(" & copyrange.Address & ")" End Sub
Cells(1)
确保我们开始“创build” pasterange
区域左上angular的输出范围。 .resize(ColNum, RowNum)
大小调整为.resize(ColNum, RowNum)
的转置变体。
也许更容易理解(但是也一样,只是更详细):
.Resize(RowSize:=ColNum,ColumnSize:=RowNum)