Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA:将范围除以一百万的宏_Excel_Vba - Fatal编程技术网

Excel VBA:将范围除以一百万的宏

Excel VBA:将范围除以一百万的宏,excel,vba,Excel,Vba,我在Excel表格中有一个包含硬编码值的范围,以百万为单位。如何编写VBA宏以将选定范围除以一百万 致以最诚挚的问候无需宏指令 在一个单元格中写入1000000 复制那个单元格 选择具有硬编码值的范围 粘贴特殊并选择分割 OK 对于像这样简单的事情,我会在范围附近的区域(如果是行,则在下面,如果是列,则在旁边,等等)写一个公式,然后复制/粘贴为值并替换原始区域 如果确实要为此创建宏,可以为变量指定一个范围,包括选定的范围。从那里,循环遍历范围中的每个单元格,并用所需的值替换值(如下所示):

我在Excel表格中有一个包含硬编码值的范围,以百万为单位。如何编写VBA宏以将选定范围除以一百万

致以最诚挚的问候

无需宏指令

  • 在一个单元格中写入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