|
用for循环把自己也摘谜糊了,哪位大侠可以帮帮忙改用字典法实现。
1、用CheckBox选择实现了报表标头。
2、想利用字典法实现按日期区间和按选择的CheckBox标头从数据库中提取数据
请路过的老师帮忙实现一下,多谢了
Sub 按日期报表()
Dim mySh1 As Object
Dim mySh2 As Object
Dim i As Integer
Dim ii As Integer
Dim j As Integer
Dim l As Integer
Dim s As Integer
Set mySh1 = ThisWorkbook.Worksheets("报表")
Set mySh2 = ThisWorkbook.Worksheets("数据库")
l = mySh1.[A65536].End(xlUp).Row + 1
j = mySh2.[A65536].End(xlUp).Row
For ii = 2 To j
If Format(mySh2.Cells(ii, 1).Value, "yyyy-mm-dd") >= Format(报表查询.TextBox7.Value, "yyyy-mm-dd") And Format(mySh2.Cells(ii, 1).Value, "yyyy-mm-dd") <= Format(报表查询.TextBox8.Value, "yyyy-mm-dd") Then
n = n + 1
mySh1.Cells(l, 1).Value = n
For i = 1 To 8
If 报表查询.Controls("CheckBox" & i).Value = True Then
mySh1.Cells(l, 2).Value = mySh2.Cells(ii, 1).Value
mySh1.Cells(l, i + 2).Value = mySh2.Cells(ii, i + 1).Value
s = i
ElseIf 报表查询.Controls("CheckBox" & i).Value = False Then
If s = 0 Then
s = 1
Else
s = i - 1
End If
mySh1.Cells(l, 2).Value = mySh2.Cells(ii, 1).Value
mySh1.Cells(l, s + 2).Value = mySh2.Cells(ii, s + 1).Value
End If
Next
End If
Next ii
End Sub
|
|