作者:绿色风
分类:
时间:2022-08-17
浏览:107
楼主 kevinchengcw |
Q: 如何对单行或单列单元格与一组数组之间相互赋值? A: 假设数据区域为从A1开始的十个单元格,则: 单行单元格赋值给数组可以用如下代码:- Arr = WorksheetFunction.Transpose(WorksheetFunction.Transpose([a1:j1]))
单列单元格赋值给数组可以用如下代码:- Arr = WorksheetFunction.Transpose([a1:a10])
数组赋值给单行单元格可以用如下代码:- [b2].Resize(1, UBound(Arr)) = WorksheetFunction.Transpose(WorksheetFunction.Transpose(Arr))
数组赋值给单列单元格可以用如下代码:- [b2].Resize(UBound(Arr), 1) = WorksheetFunction.Transpose(Arr)
下面我们来分析: 我们可以这样假想,数组是横着的,类似单元格的一行这样,那么竖着的单元格想赋值给横着的单元格要用transpose转一下,但是数组与单元格还不同,所以横着的单元格想赋值给数组要先转竖再转横,虽然麻烦,但却是有效的方法; 数组赋值给单元格也是同样的道理的反向操作。
以上方法仅对单行或单列单元格及一组数组有效。
附示例文件。 示例文件代码如下:- Sub tt()
- Dim Arr
- Arr = WorksheetFunction.Transpose(WorksheetFunction.Transpose([a1:j1]))
- MsgBox Join(Arr, ",")
- [b2].Resize(UBound(Arr), 1) = WorksheetFunction.Transpose(Arr)
- Erase Arr
- Arr = WorksheetFunction.Transpose([a1:a10])
- MsgBox Join(Arr, ",")
- [b2].Resize(1, UBound(Arr)) = WorksheetFunction.Transpose(WorksheetFunction.Transpose(Arr))
- End Sub
单行或单列单元格与数组相互赋值.rar |
2楼 亡者天下 |
过来学习一下 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一