vb,vbA操作EXCEL怎么把指定数据复制到另一工作表符合条件的相应位置?

怎么实现对数据库的调取并修改,但不在数据库中直接修改,(注:数据库工作表除序号列A列不变外,对应的B,C,D,、、、在修改工作表中通过输入序号变量调取相应信息,修改姓名、地址等值后保存到数据库对应序号行对应列,实际数据库有近40多个列上千行,序号是连续且唯一的,这里只列举了三个列,谢谢!)另外,现在只解决了输入序号调出相关信息即第三行我可以用函数调取,差保存修改值这步

Sub 修改并保存()
Dim I
X = WorksheetFunction.Match([B1], Sheets("基础数据").Range("A:A"), 0)
Range("A3:D3").Copy Sheets("基础数据").Cells(X, "a")
Sheets("基础数据").Select
Sheets("基础数据").Range("a" & X & ":" & "d" & X).Interior.ColorIndex = 3 '修改过的区域填充红色
End Sub

代码复制到 修改表里

追问

因为修改表里是套用了公式的,点击修改后,基础数据库里被修改的部分变成函数公式了,所以需要填充为值,也就是基础数据里都是不带公式的,(为方便查看以往数据,所以用笨办法通过函数调用要修改序号的行的数据库数据,所以修改表中所看到的实际是公式或函数调取的,通过输入序号数频繁调取基础数据查看并修改保存)

追答Sub 修改并保存()
Dim x
x = WorksheetFunction.Match([B1], Sheets("基础数据").Range("A:A"), 0)
arr = Range("A3:D3")
Sheets("基础数据").Cells(x, "a").Resize(1, 4) = arr
Sheets("基础数据").Select
Sheets("基础数据").Range("a" & x & ":" & "d" & x).Interior.ColorIndex = 3 '修改过的区域填充红色
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-05
Sub 修改()
Dim i%,j%
For i=2 to 5000

if sheets(2).cells(i,"A")=sheets(1).cells(1,"B") then

sheets(2).cells(i,"B")=sheets(1).cells(2"B")
sheets(2).cells(i,"C")=sheets(1).cells(2"C")
sheets(2).cells(i,"D")=sheets(1).cells(2"D")
end if

Next i
End Sub追问

不得行

追答

OK了,刚才漏了“,”。
Sub 修改()
Dim i%,j%
For i=2 to 5000

if sheets(2).cells(i,"A")=sheets(1).cells(1,"B") then

sheets(2).cells(i,"B")=sheets(1).cells(2,"B")
sheets(2).cells(i,"C")=sheets(1).cells(2,"C")
sheets(2).cells(i,"D")=sheets(1).cells(2,"D")
end if

Next i
End Sub

本回答被提问者采纳
相似回答