有一个我要根据另一个工作表上的输入量进行修改的表单。无法获取下面的代码。我是VBA新手,所以可能很简单。不确定我的“ Dim”和“ Set”命令是否正确,因为我收到“ startrow1”的“ Object Required”错误。
代码应添加可变数量的行(这样做)。但是问题是出发点。 “默认”起始点将为“ A20”,但是需要根据先前在其上方添加的带有另一个宏的行数进行更改。 (ws1.Range。(“ D45”)。value)。 因此,如果“ D45”为2,则起点应更改为“ A22”。
Sub Addquotedrows()
Application.ScreenUpdating = False
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim addquoted As Range
Dim startrow As Range
Dim startrow1 As Range
Set ws1 = Sheets("Input")
Set ws2 = Sheets("PakEmail")
Set addquoted = ws1.Range("D46")
Set startrow = ws2.Range("a20")
Set startrow1 = startrow + ws1.Range("D45").Value
Let X = 0
Do While X < addquoted
With ws2
startrow1.EntireRow.Insert Shift:=xlUp
End With
X = X + 1
Loop
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:1)
仅将 startrow 偏移D45中的行数。
Set startrow = ws2.Range("a20").offset(ws1.Range("D45").Value, 0)
答案 1 :(得分:0)
使用您拥有的代码,您需要将startrow设置为整数,然后进行加法,并将startrow1 =的范围设置为如下所示的值:
Dim startrow Integer
Set startrow = 20
Set startrow1 = Range("A" & startrow +
ws1.Range("D45").Value
您的问题是,您正在向范围中添加一个整数,就像在大城市中并说要查找地址9一样。 错误消息说,“好吧,9什么?” 这有道理吗?
因此,您现在有2个选择。 1)使用具有偏移量的上述地址 2)使用此处显示的数字。 哪一种都能满足您的需求,取决于您的样式,什么对您有意义,以及如果使用另一种方式可能会绊倒其他代码。 (这种可能性很小,但仍有可能)。
祝你好运!