运行公式将值从正数更改为负数,然后自动填充到数据末尾
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
【讨论】:
以上是关于运行公式将值从正数更改为负数,然后自动填充到数据末尾的主要内容,如果未能解决你的问题,请参考以下文章