Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 14945|回复: 12

[已解决]利用窗体查询表中数据,并可对数据进行修改,然后返回到原数据表中

[复制链接]
发表于 2014-6-23 09:28 | 显示全部楼层 |阅读模式
5学分
查询的功能我已经实现,可是如何将查询到的数据进行修改,在返回到原数据表中,不会操作,求解各位老师,大牛! 先在这谢谢了!
最佳答案
2014-6-23 11:02
  1. Private Sub CommandButton3_Click()
  2.     Dim MYRANGE As Range
  3.     Dim i As Integer
  4.     With Sheets("sheet1")
  5.         Set MYRANGE = .Range("A2", .Range("A65536").End(xlUp)).Find(TextBox1.Value)
  6.         If Not MYRANGE Is Nothing Then
  7.             For i = 1 To 12
  8.                 .Cells(MYRANGE.Row, i).Value = Me.Controls("TEXTBOX" & i).Text
  9.             Next i
  10.             '身份证号码
  11.             .Cells(MYRANGE.Row, 4).Value = "'" & Me.Controls("TEXTBOX" & i).Text
  12.         End If
  13.     End With
  14.     MsgBox "数据更新完成"
  15. End Sub
复制代码

材料.zip

212.71 KB, 下载次数: 464

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-6-23 09:35 | 显示全部楼层
取值是textbox.text=单元格的值
你写回就是单元格的值=textbox.text
反向操作罢了。
回复

使用道具 举报

 楼主| 发表于 2014-6-23 09:59 | 显示全部楼层
hwc2ycy 发表于 2014-6-23 09:35
取值是textbox.text=单元格的值
你写回就是单元格的值=textbox.text
反向操作罢了。

大牛,可否编程操作一番,我不是特别明白这个,谢谢了
回复

使用道具 举报

发表于 2014-6-23 10:07 | 显示全部楼层
原来取单元格的值不是这样嘛。
            For i = 1 To 12
                Me.Controls("TEXTBOX" & i) = .Cells(MYRANGE.Row, i)
            Next i
如果你要做写回单元格的操作,把=号两边的互换。
            For i = 1 To 12
                 .Cells(MYRANGE.Row, i).value=Me.Controls("TEXTBOX" & i) .text
            Next i
回复

使用道具 举报

 楼主| 发表于 2014-6-23 10:21 | 显示全部楼层

不好意思 ,嘿嘿

本帖最后由 w920301 于 2014-6-23 10:40 编辑
hwc2ycy 发表于 2014-6-23 10:07
原来取单元格的值不是这样嘛。
            For i = 1 To 12
                Me.Controls("TEXTBOX" & i ...

恩 刚晕了,我给弄出来了,可是更新后,返回到原表的数据的格式发生了变化,变成了左对齐,这个咋解决啊

材料.zip

215.72 KB, 下载次数: 406

回复

使用道具 举报

发表于 2014-6-23 10:39 | 显示全部楼层
  1. Private Sub CommandButton3_Click()
  2.     Dim MYRANGE As Range
  3.     Dim i As Long
  4.     With Sheets("sheet1")
  5.         Set MYRANGE = .Range("A2", .Range("A65536").End(xlUp)).Find(TextBox1.Value)
  6.         If Not MYRANGE Is Nothing Then
  7.             For i = 1 To 12
  8.                 .Cells(MYRANGE.Row, i).Value = Me.Controls("TEXTBOX" & i).Text
  9.             Next
  10.         End If
  11.     End With
  12. End Sub
复制代码
回复

使用道具 举报

发表于 2014-6-23 10:41 | 显示全部楼层
  1. Private Sub CommandButton3_Click()
  2.     Dim MYRANGE As Range
  3.     Dim i As Integer
  4.     With Sheets("sheet1")
  5.         Set MYRANGE = .Range("A2", .Range("A65536").End(xlUp)).Find(TextBox1.Value)
  6.         If Not MYRANGE Is Nothing Then
  7.             For i = 1 To 12
  8.                 .Cells(MYRANGE.Row, i).Value = Me.Controls("TEXTBOX" & i).Text
  9.             Next i
  10.         End If
  11.     End With
  12.     MsgBox "数据更新完成"
  13. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-6-23 10:41 | 显示全部楼层
5201314 发表于 2014-6-23 10:39

我成功弄出来之后,返回到表中的格式发生了变化,如何保证返回的格式不发生变化呢?
回复

使用道具 举报

 楼主| 发表于 2014-6-23 10:51 | 显示全部楼层
hwc2ycy 发表于 2014-6-23 10:41

更新完成后如何保证数据格式不发生变化呢
回复

使用道具 举报

发表于 2014-6-23 10:58 | 显示全部楼层
w920301 发表于 2014-6-23 10:51
更新完成后如何保证数据格式不发生变化呢

我刚没考虑到身份证号码这些。
你就身份证的加个 ' 号连接下吧。其余的貌似不会有变化。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 16:51 , Processed in 0.338127 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表