|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
<P>其实我还是很菜的,这不都消化半天了还没有全部弄明白!套用以后,最后一张凭证无法查找:</P>
<P>Private Sub CommandButton1_Click()
If TextBox1.Text = "" Then
MsgBox "请填写凭证字号!", 1 + 64, "凭证查询"
TextBox1.SetFocus
Else
A = Sheets("凭证信息汇总").[a1]
If TextBox1.Text > A Then
Unload UserForm1
MsgBox "没有找到你需要的凭证字号!", 1 + 64, "凭证查询"
Else
With Sheets("凭证查询") '以下带点的是对当前工作表"凭证查询"的操作
.[I2] = TextBox1.Text
AAA = Application.WorksheetFunction.CountA(Sheets("凭证信息汇总").Columns(4)) '表凭证信息汇总D列非空数
Sheets("凭证信息汇总").Cells(AAA + 1, 1) = Application.WorksheetFunction.Max(Sheets("凭证信息汇总").Columns(1)) + 1
Sheets("凭证查询").Range("A5:I10").ClearContents '清空A5:I10
X = Application.WorksheetFunction.Match(.[I2], Sheets("凭证信息汇总").Columns(1), 0) '查找I2在凭证信息汇总中的位置
Y = Application.WorksheetFunction.Match(.[I2] + 1, Sheets("凭证信息汇总").Columns(1), 0) <b><FONT color=#f70909>'到最后一张凭证时是在这里出错的吧?
</FONT></b> Z = Y - X
For I = 1 To Z
If Sheets("凭证信息汇总").Cells(X, 7) > 0 Then '从当前凭证号向下偏移7列值大于0
K = K + 1 <FONT color=#ff0000><B>'为什么要这样用呢?
</B></FONT> End If
Next
J = K - 1
For M = 1 To J
.Cells(M + 4, 2) = Sheets("凭证信息汇总").Cells(M + X - 1, 4)
.Cells(M + 4, 3) = Sheets("凭证信息汇总").Cells(M + X - 1, 5)
.Cells(M + 4, 4) = Sheets("凭证信息汇总").Cells(M + X - 1, 6)
.Cells(M + 4, 8) = Sheets("凭证信息汇总").Cells(M + X - 1, 7)
Next M
For N = 1 To Z - J
.Cells(N + 4 + J, 5) = Sheets("凭证信息汇总").Cells(N + X + J - 1, 4)
.Cells(N + 4 + J, 6) = Sheets("凭证信息汇总").Cells(N + X + J - 1, 5)
.Cells(N + 4 + J, 7) = Sheets("凭证信息汇总").Cells(N + X + J - 1, 6)
.Cells(N + 4 + J, 9) = Sheets("凭证信息汇总").Cells(N + X + J - 1, 8)
Next N</P>
<P>
.[A5] = Sheets("凭证信息汇总").Cells(X, 3)
Sheets("凭证信息汇总").Cells(AAA + 1, 1) = ""
End With
End If
End If
Unload UserForm1
End Sub</P>
[此贴子已经被作者于2004-9-29 17:58:07编辑过] |
|