Excel VBA将每行乘以自己的编号

时间:2017-01-05 14:35:31

标签: excel excel-vba vba

我试图找到将一行数据乘以变量的最佳方法。我有一张这样的桌子:

enter image description here

我有一个脚本要求我输入分析师在该时间段内工作的天数。

我接下来要发生的是另一个具有相同标题和格式的表格,上面的数据除以工作天数。 I.E.让我们说工作时间下的第一行,24:54:55除以3天工作,所以8小时后改变。

我希望这一切都在代码中,而不是excel表中的函数。

我尝试使用类似的功能:

Dim rng As Range
For Each rng In Range("G54:R54")
    rng = (rng / wd1)
Next rng

但那没用。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

什么是wd1?你宣布了​​吗?如果不是,则为零,因此除以零误差。 否则代码很好&在我的电脑上工作。

使用显式选项来避免此类错误。

编辑:计算例如380 * 1000/60确实引发错误,因为所有这些都被假定为整数。也许它可以相关,尝试使用cdbl(rng)

答案 1 :(得分:0)

我过去曾使用过以下内容(动态范围,贴在同一位置的Sheet2):

Sub Paste_Special_Divide()

Dim LR As Long
Dim LC As Long
Dim MsgBoxy As Integer
Dim Source As Range
Dim Destination As Range


LR = Cells(Sheets("Sheet1").Rows.Count, 1).End(xlUp).Row

Set Source = Sheets("Sheet1").Range("A1:O" & LR)
Set Destination = Sheets("Sheet2").Range("A1:O" & LR)

MsgBoxy = Application.InputBox("Enter selection divisor:", Title:="Selection divisor", Default:=10, Type:=1)

Source.Copy
Destination.PasteSpecial Paste:=xlPasteAll, Operation:=xlDivide
    Application.CutCopyMode = False

End Sub

希望这有帮助!