我正在尝试让我的宏找到一个特定值( datediff值),并根据该值创建一个工作簿,其中显示具有相同策略编号(唯一条件)和我指定的datediff值的所有行。问题是,我的宏并不是只针对一个策略编号执行此操作,而是使用我指定的datediff值对所有策略编号执行此操作。我尝试了下面的代码,但一直收到错误消息。所以任何帮助都是绝对令人惊叹的!
Sub Invoice()
Dim s As Integer
s = 2
Dim t As Integer
t = 21
Dim r As Integer
r = 2
Dim policy As String
Dim sheet As Worksheet
Set sheet = ActiveWorkbook.Sheets("sheet1")
policy = Workbooks("Woorkbook2.xlsm").Sheets("sheet1").Range("A" & r).Value
If Cells(s, 1).Value = policy Then
Workbooks("Workbook2.xlsm").Sheets("Sheet1").Activate
mini = Cells(s, 21).Value
If mini = "2" Then
Dim Newbook As Workbook
Set Newbook = Workbooks.Add
Workbooks("Workbook2.xlsm").Sheets("Invoice Template (2)").Copy Before:=Newbook.Sheets(1)
ActiveSheet.Name = "Current Invoice"
Workbooks("Workbook2.xlsm").Sheets("Sheet1").Activate
Do Until IsEmpty(Cells(s, 1))
Newbook.Sheets("Current Invoice").Cells(t, 2).Value = Cells(s, 10).Value
Newbook.Sheets("Current Invoice").Cells(t, 3).Value = Cells(s, 8).Value
Newbook.Sheets("Current Invoice").Cells(t, 7).Value = Cells(s, 11).Value
Loop
s = s + 1
r = r + 1
End If
End IF
End Sub发布于 2014-03-07 23:51:24
我认为循环应该在‘s’的增量之后:
Do Until IsEmpty(Cells(s, 1))
Newbook.Sheets("Current Invoice").Cells(t, 2).Value = Cells(s, 10).Value
Newbook.Sheets("Current Invoice").Cells(t, 3).Value = Cells(s, 8).Value
Newbook.Sheets("Current Invoice").Cells(t, 7).Value = Cells(s, 11).Value
s = s + 1
Loophttps://stackoverflow.com/questions/22254543
复制相似问题