【发布时间】:2011-09-19 16:38:24
【问题描述】:
使用 Excel 2007 开发,但需要与 2003 兼容。
问题:
工作簿有两张纸。表二包含数据,A 到 M 列。C 列被格式化为日期值。并非所有行都包含 C 列中的值。
第一页有 3 个选项按钮(表单控件),分别标记为合同日期、生效日期和结束日期。选择合同日期时,需要使用条件过滤器查询第二张表 C 列(此处包含日期)上的数据...如果日期
如果选择了另一个“选项按钮”,则第一个查询的结果将替换为第二个查询的结果。
这是我一直在处理的代码,但它不起作用。
Sub OptionButton1_Click()
Application.ScreenUpdating = False
TEMPLATE_SHEET = "Data_Input"
Database_sheet = "Carrier"
myzerorange = "C" & ActiveWindow.RangeSelection.Row & ":" & "M" & ActiveWindow.RangeSelection.Row
mycompany = "C" & ActiveWindow.RangeSelection.Row
mydate = "D" & ActiveWindow.RangeSelection.Row
Database_sheet = ActiveSheet.Name
DATABASE_RECORDS = Sheets(Database_sheet).Range("C2:C1000") Count_Row = 13
If Range(mycompany) <> "" Then
If Range(mydate) <> "" Then
'Range(mydate) = contractdate
If mydate < DateAdd("d", 14, "Today()") Then
Range(myzerorange).Copy
Sheets(TEMPLATE_SHEET).Select
'To identify the next blank row in the database sheet
DATABASE_RECORDS = Sheets(TEMPLATE_SHEET).Range("C13:C1000")
'To identify the next blank row in the data_Input sheet
For Each DBRECORD In DATABASE_RECORDS
If DBRECORD <> "" Then
Count_Row = Count_Row + 1
Next DBRECORD
Sheets(TEMPLATE_SHEET).Range("C" & Count_Row).Select
ActiveSheet.Paste
'Return to origin and check for another contract date
Sheets(Database_sheet).Select
Else
End If
Else
End If
End If
Application.ScreenUpdating = True
End Sub
这个修改后的代码仍然不起作用...不确定是什么挂了...
Sub CopyRowConditional()
Application.ScreenUpdating = False
Srownumber = 2 'source sheet row number "Data_Input"
Trownumber = 13 'target sheet row number "Carrier"
Do
Srownumber = Srownumber + 1
Trownumber = Trownumber + 1
If Cells(Srownumber, 3).Value = "" Then Exit Do
If Cells(Srownumber, 4).Value < DateAdd("d", 14, "Today()") Then
For Column = 3 To 13
Sheets(template_sheet).Cells(Trownumber, Column).Value = >Sheets(Database_sheet).Cells(Srownumber, Column).Value
Next Column
End If
End If
Loop
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
这里的问题需要更加集中一些。你一次要求很多东西。这不是一个编写你的代码的网站。告诉我们你做了什么。
-
另外,请向我们展示一个示例,说明您拥有什么作为输入以及您想要什么作为输出,例如屏幕截图或格式正确的表格。如有必要,使用
code格式来获得固定宽度的字体。很少有人愿意阅读散文中对电子表格的描述。
标签: excel excel-2007 excel-2003 worksheet-function vba