Excel VBA:将范围除以一百万的宏
我在Excel表格中有一个包含硬编码值的范围,以百万为单位。如何编写VBA宏以将选定范围除以一百万 致以最诚挚的问候无需宏指令Excel VBA:将范围除以一百万的宏,excel,vba,Excel,Vba,我在Excel表格中有一个包含硬编码值的范围,以百万为单位。如何编写VBA宏以将选定范围除以一百万 致以最诚挚的问候无需宏指令 在一个单元格中写入1000000 复制那个单元格 选择具有硬编码值的范围 粘贴特殊并选择分割 OK 对于像这样简单的事情,我会在范围附近的区域(如果是行,则在下面,如果是列,则在旁边,等等)写一个公式,然后复制/粘贴为值并替换原始区域 如果确实要为此创建宏,可以为变量指定一个范围,包括选定的范围。从那里,循环遍历范围中的每个单元格,并用所需的值替换值(如下所示):
- 在一个单元格中写入1000000
- 复制那个单元格
- 选择具有硬编码值的范围
并选择粘贴特殊
分割
OK
对于像这样简单的事情,我会在范围附近的区域(如果是行,则在下面,如果是列,则在旁边,等等)写一个公式,然后复制/粘贴为值并替换原始区域 如果确实要为此创建宏,可以为变量指定一个范围,包括选定的范围。从那里,循环遍历范围中的每个单元格,并用所需的值替换值(如下所示):
使用自定义数字格式使单元格看起来像是被除以一百万,同时保留真正的原始基础值
sub meh()
selection.numberformat = "0,,\M"
end sub
我添加了一个M作为单位后缀。不需要循环
Sub MyDivide
Selection.Value = Selection.Parent.Evaluate("INDEX(" & Selection.address & "/1000000,)")
End Sub
只需选择所需的单元格并运行子单元格。使用宏录制器手动执行此操作,它将为您显示一种编码方式。在我使用Excel的几年中,除了将其作为值粘贴外,我一直忽略“特殊粘贴”。这是很酷的功能,谢谢分享!对于单个单元格或标准矩形单元格来说很好,但对于非连续区域来说不太友好。(如果选择的不是连续范围,则会清除单元格,我假设是由于
选择中的,
被错误地解释了。
地址)。这是正确的,它需要是连续的@YowE3K
Sub MyDivide
Selection.Value = Selection.Parent.Evaluate("INDEX(" & Selection.address & "/1000000,)")
End Sub