运行公式将值从正数更改为负数,然后自动填充到数据末尾

Posted

技术标签:

【中文标题】运行公式将值从正数更改为负数,然后自动填充到数据末尾【英文标题】:Run formula for changing values from positive to negative numbers and then auto-fill down to end of data 【发布时间】:2019-07-16 19:56:06 【问题描述】:

每个星期一我都会从我们的供应商那里生成一份贷项通知单报告,供我们使用。每次我运行此报告时,列表长度都会发生变化。该报告将美元金额作为正数提供给我,即使它们是贷项通知单并且应该是负数。格式化工作表后,我的值属于 G、H、I、J 列。我需要将这些更改为负值。我一直在手动执行此操作,并想使用宏来帮助我完成这部分。 在 L-O 列中,我将使用以下内容: In L2 = G2*-1 ; M2 = H2*-1; N2=I2*-1; O2=J2*-1。然后我会自动填充数据的底部。复制它,将值粘贴到我的 G-J 列上,然后删除我的公式部分 L-O。为此使用的最佳宏是什么?

记录宏停在当前列表的底行,但下周一,当我的新数据可能转到第 721 行时,它只会停在同一行(例如 495)。

ActiveCell.Offset(1, 11).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-5]*-1"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-5]*-1"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-5]*-1"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "=RC[-5]*-1"
ActiveCell.Offset(0, -3).Range("A1:D1").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:D1450")
ActiveCell.Range("A1:D1450").Select
Selection.Copy
ActiveCell.Offset(0, -5).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
ActiveCell.Offset(0, 5).Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.ClearContents
ActiveCell.Offset(0, -5).Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Style = "Comma"

【问题讨论】:

【参考方案1】:

对于不需要VBA的人来说,简单的方法是在备用单元格中输入-1,复制它,选择相关范围并粘贴特殊乘法。

【讨论】:

【参考方案2】:

试试这个宏

Option Explicit

Sub Multiplication_by_number()
Dim my_num#: my_num = -1 '  You can Change this number
[e1] = my_num ' You can Change this Location to any Other range
Dim My_rg As Range
[e1].Copy
Set My_rg = Range("A1:C8") 'choose here your data
My_rg.PasteSpecial , Operation:=xlMultiply
Application.CutCopyMode = False
My_rg.Cells(1).Select
End Sub

【讨论】:

以上是关于运行公式将值从正数更改为负数,然后自动填充到数据末尾的主要内容,如果未能解决你的问题,请参考以下文章

如果满足条件,则将正数更改为负数

将对象数组中的正数更改为负数

将值从 json 数据存储到 arraylist 并填充视图持有者

使用VBA将值从一个表粘贴到另一个表

将 Excel 中的值从字符串更改为数字

将值从表单传递到表单