Excel精英培训网

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

[已解决]求助!简单的宏功能,急用,在线等!

  [复制链接]
发表于 2012-1-29 19:18 | 显示全部楼层 |阅读模式
本帖最后由 zeng1412 于 2012-1-29 21:09 编辑

现在有2个表,在第一个表上面有3个按钮,分别是新建,保存,查询。
我要实现这3个简单的功能。具体数据和要求见附件。
很简单的,希望高手能帮忙解决,在线等!!


感谢:无聊的疯子、sunjing-zxlwindimi007 帮我解决这个问题
最佳答案
2012-1-29 21:04
zeng1412 发表于 2012-1-29 21:00
不是这个意思
比如说:0001   ABC
              0002   CCC

应该是这样吧!{:912:}

新建 Microsoft Excel 工作表.rar

9.83 KB, 下载次数: 16

发表于 2012-1-29 19:30 | 显示全部楼层
注意:现在我编号到0010,然后查询0004,我再新建时,编号按之前保存的编号继续加,则为0011
如果你一直新建,从1一直新建到10,中间并未保存(或者跳位保存),这时候你要查询是不是就不一定能查到呢??

按保存时,编号和名称自动保存在SHEET2对应地方

这个对应的地方是那里??A列?B列?IV列?还是 XDF列??
保存时,名称为空是否允许保存??

如果你是如下操作
建一个编号>添加上名称>保存>再建一个编号>循环

那是否可以直接改用
添加上名称>保存(同时增加编号,清空名称)

回复

使用道具 举报

 楼主| 发表于 2012-1-29 19:33 | 显示全部楼层
无聊的疯子 发表于 2012-1-29 19:30
注意:现在我编号到0010,然后查询0004,我再新建时,编号按之前保存的编号继续加,则为0011
如果你一直新 ...

保存到对应的地方,就是在SHEET,编号和名称对应的列

有些地方没考虑完全,请高手指导!  
关键是这些代码怎么写!
回复

使用道具 举报

发表于 2012-1-29 19:55 | 显示全部楼层
zeng1412 发表于 2012-1-29 19:33
保存到对应的地方,就是在SHEET,编号和名称对应的列

有些地方没考虑完全,请高手指导!  

看看这样行不??
要从1开始,只需要将 F9 中的值修改成1就行了
新建 Microsoft Excel 工作表.zip (20.6 KB, 下载次数: 3)
回复

使用道具 举报

发表于 2012-1-29 19:56 | 显示全部楼层
zeng1412 发表于 2012-1-29 19:33
保存到对应的地方,就是在SHEET,编号和名称对应的列

有些地方没考虑完全,请高手指导!  

做了一个,就是有一点:如果没有单击保存,点击新建,编号数值是不会增加的。不知道是否符合要求呢?{:3912:}

新建 Microsoft Excel 工作表.rar

16.77 KB, 下载次数: 8

回复

使用道具 举报

 楼主| 发表于 2012-1-29 20:18 | 显示全部楼层
windimi007 发表于 2012-1-29 19:56
做了一个,就是有一点:如果没有单击保存,点击新建,编号数值是不会增加的。不知道是否符合要求呢?{:39 ...

有3个小问题
1、我不小心多按了几次保存,在Sheet2中,出现了重复保存。能否唯一编号,只能保存一行
2、查询功能和新建功能一样
3、如果利用查询功能修改已经保存的数据,能否覆盖掉原来对应的数据,保存在sheet2的行不变
回复

使用道具 举报

 楼主| 发表于 2012-1-29 20:21 | 显示全部楼层
无聊的疯子 发表于 2012-1-29 19:55
看看这样行不??
要从1开始,只需要将 F9 中的值修改成1就行了

如果我保存的数据,错了,能否利用查询功能进行修改,
比如我首先输入了编号:0001,名称:ABC
我保存好了,后面检查时,我输错了,我能否在利用查询功能
查询0001,把名称改为BBC,然后点击保存,新数据覆盖掉原来的数据,且保存位置不变
回复

使用道具 举报

发表于 2012-1-29 20:26 | 显示全部楼层
  1. Sub 新建()
  2.     Dim k As Long
  3.     Dim n As Long
  4.     With Sheets("sheet2")
  5.         n = .[A65536].End(xlUp).Row
  6.         If n = 1 Then
  7.             k = 1
  8.         Else
  9.             k = Val(.Cells(n, 1)) + 1
  10.         End If
  11.     End With
  12.     Cells(8, 4) = k
  13.     Range("D9").ClearContents
  14. End Sub
  15. Sub 保存()
  16.     Dim k1 As Long, k2
  17.     Dim n As Long
  18.     k1 = Cells(8, 4)
  19.     k2 = Cells(9, 4)
  20.     If k2 = "" Then
  21.         MsgBox "名称为空" & Chr(10) & "请输入名称"
  22.         Exit Sub
  23.     End If
  24.     With Sheets("sheet2")
  25.         n = .[A65536].End(xlUp).Row
  26.         .Cells(n + 1, 1) = k1
  27.         .Cells(n + 1, 2) = k2
  28.     End With
  29. End Sub
  30. Sub 查询()
  31.     Dim k1 As Long, k2
  32.     Dim n As Long, i As Long, arr
  33.     k1 = InputBox("请输入正整数", "查询编号")
  34.     With Sheets("sheet2")
  35.         n = .[A65536].End(xlUp).Row
  36.         arr = .Range(.Cells(2, 1), .Cells(n, 2))
  37.     End With
  38.     For i = 1 To UBound(arr)
  39.         If arr(i, 1) = k1 Then
  40.             k2 = arr(i, 2)
  41.             Cells(8, 4) = k1
  42.             Cells(9, 4) = k2
  43.             MsgBox "查询完毕"
  44.             Exit Sub
  45.         End If
  46.     Next i
  47.     MsgBox "没有所查询编号存在"
  48. End Sub
复制代码
回复

使用道具 举报

发表于 2012-1-29 20:26 | 显示全部楼层
zeng1412 发表于 2012-1-29 20:21
如果我保存的数据,错了,能否利用查询功能进行修改,
比如我首先输入了编号:0001,名称:ABC
我保存好 ...

已经修改

新建 Microsoft Excel 工作表.zip (20.77 KB, 下载次数: 2)
回复

使用道具 举报

发表于 2012-1-29 20:30 | 显示全部楼层
zeng1412 发表于 2012-1-29 20:18
有3个小问题
1、我不小心多按了几次保存,在Sheet2中,出现了重复保存。能否唯一编号,只能保存一行
2、 ...

没在查询上改动,在保存上改动了一下,请测试!{:1712:}

新建 Microsoft Excel 工作表.rar

17.42 KB, 下载次数: 3

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 22:46 , Processed in 0.357772 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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