ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 选择区域中填充单元格地址(不允许循环单元格)

选择区域中填充单元格地址(不允许循环单元格)

作者:绿色风 分类: 时间:2022-08-18 浏览:72
楼主
wqfzqgk
1、用公式法:

  1. Sub test()
  2. Selection.Formula = "=CELL(""address"",RC)"
  3. Dim arr
  4. a = Selection.Columns.Count
  5. ReDim arr(1 To Selection.Rows.Count, 1 To a)
  6. arrr = Selection.Value
  7. For i = 1 To Selection.Rows.Count
  8. For ii = 1 To Selection.Columns.Count
  9. arr(i, ii) = Split(arrr(i, ii), "$")(1) & Split(arrr(i, ii), "$")(2)
  10. Next
  11. Next
  12. Selection = arr
  13. End Sub

2、一自定义函数法:

  1. Public Function 数值转列号(ByVal 数值 As Long) As String
  2.     Dim a As String
  3.     arr = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
  4.     数值转列号 = ""
  5.     Do While 数值 > 0
  6.         a = CStr(数值 Mod 26)
  7.         If a = 0 Then
  8.         a = arr(25)
  9.         数值转列号 = a & 数值转列号
  10.         数值 = (数值 - 26) / 26
  11.         Else
  12.         a = arr(a - 1)
  13.         数值转列号 = a & 数值转列号
  14.         数值 = Int(数值 / 26)
  15.         End If
  16.     Loop
  17. End Function
  18. Sub 区域填充单元格地址不用循环单元格()
  19. Dim arr(), ii, i
  20. rw1 = Selection(1, 1).Row
  21. rw2 = Selection(1, 1).Row + Selection.Rows.Count - 1
  22. cl1 = Selection(1, 1).Column
  23. cl2 = Selection(1, 1).Column + Selection.Columns.Count - 1
  24. ReDim arr(rw1 To rw2, cl1 To cl2)
  25. For i = cl1 To cl2
  26. For ii = rw1 To rw2
  27. arr(ii, i) = 数值转列号(i) & ii
  28. Next
  29. Next
  30. Selection = arr
  31. End Sub
2楼
罗刚君
Selection.Formula = "=address(row(),column(),4)"
Selection = Selection.Value

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap