我有一系列不同的整数值,比如说 d7:o7 。我想将这些值移动到同一工作簿中的另一个位置(基于此问题范围之外的逻辑)。做这个的最好方式是什么?
我最初的(失败的)方法有点像这样:
创建一个变体
Dim myArray As Variant
为数组赋值
myArray = Range("d7:o7")
输出新范围内的整数数组
Range("d10:o10") = myArray
提前致谢!
Range("D10:O10").Value = Range("d7:O7").Value
希望这可以帮助
这将复制(不删除原始值),假设您停留在同一张纸上,但该列表示为一个数字(EG A=1,B=2 等)。此示例适用于 2 x 2 数组,但您可以轻松更改开始和结束行号和列号:
Sub CopyCells()
Dim SrcBeginRowNum As Integer
Dim SrcBeginColNum As Integer
Dim SrcEndRowNum As Integer
Dim SrcEndColNum As Integer
Dim DstBeginRowNum As Integer
Dim DstBeginColNum As Integer
Dim ri As Integer
Dim ci As Integer
Dim dest_ri As Integer
SrcBeginRowNum = 1
SrcBeginColNum = 1
SrcEndRowNum = 2
SrcEndColNum = 2
DstBeginRowNum = 34
DstBeginColNum = 5
dest_ri = DstBeginRowNum
dest_ci = DstBeginColNum
For ri = SrcBeginRowNum To SrcEndRowNum
dest_ci = DstBeginColNum
For ci = SrcBeginColNum To SrcEndColNum
Cells(dest_ri, dest_ci).Value = Cells(ri, ci).Value
dest_ci = dest_ci + 1
Next
dest_ri = dest_ri + 1
Next
End Sub
我相信上面给出了最好的答案:)你已经接受了。
所以我发布这个,以便对你开始做的事情有一些看法。您可以对Transposing
从范围到数组的数据执行此操作,反之亦然。但是,输出时取决于您使用的是多维数组还是单维数组。我们以Sheet1
示例代码为例。
Dim myArray As Variant
'--to array
myArray = WorksheetFunction.Transpose(WorksheetFunction_
.Transpose(Sheets(2).Range("D7:O7").Value))
'--to sheet
Sheets(1).Range("D10").Resize(1, _
UBound(Application.Transpose(myarray))) = myarray
我使用了双重转置来防止多列创建二维数组。所以它将如下所示: