|
本帖最后由 莫悠悠 于 2012-4-7 15:32 编辑
不好意思,因为我是菜鸟!还请斑竹帮忙解决这个查询问题,我按您的思路做了个,操作步骤也是先查询然后修改,但却执行了删除,能帮忙改改么?有劳费心,不胜感激!(还是贴不了附件,不好意思)
Sub 修改()
Dim a, b, c, tq, I, msg As Integer
If Range("g4") = "" Then MsgBox "你未输入单据号!": Exit Sub '单据号码所在(流水号)
a = Sheet2.[a65536].End(xlUp).Row '数据库编码所在列(明细科目)
b = Application.WorksheetFunction.Match(Range("g4"), Sheet2.Columns(4), 0) '单据录入单据号码所在与数据库第4列单据号码(流水号)
If Range("g4").Value = Sheet2.Range("d" & b).Value Then '单据号码所在=数据库单据号码列d(流水号)
msg = MsgBox("是否修改单据" & Range("g4").Value & "的信息?", vbYesNo) '单据号码所在
If msg = vbNo Then Exit Sub
c = Application.WorksheetFunction.CountIf(Sheet2.Range("d2:d" & a), Range("g4").Text) '数据库单据号码列d与单据录入单据号码(流水号)
Sheet2.Rows(b & ":" & b + c - 1).Delete
End If
I = Sheet2.[d65536].End(xlUp).Row '数据库单据号码列d
With Sheet2
For tq = 6 To Range("d11").End(xlUp).Row '单据录入编码列行数参数(科目代码列)
I = I + 1
.Range("a" & I & ":a" & I) = Range("d" & tq & ":d" & tq).Value '数据库A列(明细科目)的值=单据录入D列(科目代码)的值
.Range("i" & I & ":i" & I) = Range("c4").Value '数据库(部门)=单据录入(部门)的值
.Range("c" & I & ":c" & I) = Range("d4").Value '数据库(日期)=单据录入(日期)的值
.Range("d" & I & ":d" & I) = Range("g4").Value '数据库(单据号码)=单据录入(单据号码)的值
.Range("j" & I & ":j" & I) = Range("c13").Value '数据库(记账)=单据录入(记账)的值
.Range("k" & I & ":k" & I) = Range("e13").Value '数据库(出纳)=单据录入(出纳)的值
.Range("l" & I & ":l" & I) = Range("g13").Value '数据库(经办)=单据录入(经办)的值
.Range("b" & I & ":b" & I) = Range("c" & tq & ":c" & tq).Value '数据库(摘要)=单据录入(摘要)
.Range("a" & I & ":a" & I) = Range("d" & tq & ":d" & tq).Value '数据库(明细科目)=单据录入(科目代码)
.Range("f" & I & ":f" & I) = Range("e" & tq & ":e" & tq).Value '数据库(科目名称)=单据录入(科目名称)
.Range("g" & I & ":h" & I) = Range("f" & tq & ":g" & tq).Value '数据库(借方贷方)=单据录入(借方贷方)
Next
End With
ActiveSheet.Unprotect
Application.EnableEvents = False
Range("c6:g11").Value = "" '单据录入资料区
Range("c4,d4,g4,c13,e13,g13").Value = "" 'c4部门,d4日期,g4单据号码,c13记账,e13出纳,g13经办
ActiveSheet.Protect
Application.EnableEvents = True
End Sub |
|