Excel精英培训网

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

[已解决]如何保留选择下拉框前的前一个数据

[复制链接]
发表于 2013-12-2 16:13 | 显示全部楼层 |阅读模式
  1. If Cells(a, flag + i) <> "" Then
  2. Response = MsgBox("是否读取数据?", vbYesNo + vbQuestion + vbDefaultButton2, "提示信息")
  3. If Response = vbYes Then '用户按下“是”按钮
  4. Cells(a, flag) = "完成"
  5. For j = 1 To no
  6. Cells(a, flag + j) = Cells(a - 1, flag + j)
  7. Next
  8. 'Else

  9. End If
  10. End If
复制代码
求助各位老师:
         当有数据时,点击下拉框的“读数据”将弹出“是否读数据”的对话框。
         1、当按是时,读取上行数据,“取数据”列变成“完成”
         2、当按否时,数据不变,“取数据”列也保持不变,即:
              a、“取数据”列原来为“完成”,即为“完成”            
              b、“取数据”列原为“空”,即为“空”

而我就是不知道那个Else语句怎么写,请问各位老师,当按否时,如果保持原来的数据不变呢?



最佳答案
2013-12-2 18:23
附件:
求助,如何保留选择下拉框前的前一个数据.rar (15.72 KB, 下载次数: 6)

求助,如何保留选择下拉框前的前一个数据.rar

15.11 KB, 下载次数: 7

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-12-2 17:07 | 显示全部楼层
提个思路:
先把原单元格的值储存起来,然后再赋值回来。
回复

使用道具 举报

 楼主| 发表于 2013-12-2 17:21 | 显示全部楼层
缔造者 发表于 2013-12-2 17:07
提个思路:
先把原单元格的值储存起来,然后再赋值回来。

这个方法我已经试过了,我先存储了选择单元格的值到另一个单元格,但是当我再次选择下拉框选项“读数据”时,以保存的值就变成了“读数据”。
回复

使用道具 举报

发表于 2013-12-2 17:57 | 显示全部楼层
本帖最后由 缔造者 于 2013-12-2 18:20 编辑

没看仔细,最后一个循环把“完成”又重新赋值了,去掉就行了。
另外缺少一个选定区域发生改变时触发程序的事件

  1. <P>Dim c
  2. Private Sub Worksheet_Change(ByVal Target As Range)</P>
  3. <P>'If Target.Count > 1 Then Exit Sub
  4. a = Target.Row
  5. b = Target.Column
  6. 'c = Cells(a, b)</P>
  7. <P>flag = 1                                                     '
  8. no = 2</P>
  9. <P>If b >= flag And b <= flag + no Then
  10.     If b = flag Then
  11.         If Cells(a, flag) = "读数据" Then
  12.             For i = 1 To no
  13.                 If Cells(a, flag + i) <> "" Then
  14.                     Response = MsgBox("是否读取数据?", vbYesNo + vbQuestion + vbDefaultButton2, "提示信息")
  15.                     If Response = vbYes Then                        '用户按下“是”按钮
  16.                         Cells(a, flag) = "完成"
  17.                         For j = 1 To no
  18.                             Cells(a, flag + j) = Cells(a - 1, flag + j)
  19.                         Next
  20.                     Else
  21.                     Cells(a, flag) = c
  22.                     End If
  23.                 End If
  24.             Next
  25.             
  26. '            For i = 1 To no
  27. '                Cells(a, flag + i) = Cells(a - 1, flag + i)
  28. '                Cells(a, flag) = "完成"
  29. '            Next
  30.             
  31.         End If
  32.    
  33.     End If
  34. End If</P>
  35. <P>
  36. End Sub</P>
  37. <P>Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  38. c = Target.Value
  39. End Sub
  40.        </P>
复制代码
回复

使用道具 举报

发表于 2013-12-2 18:23 | 显示全部楼层    本楼为最佳答案   
附件:
求助,如何保留选择下拉框前的前一个数据.rar (15.72 KB, 下载次数: 6)
回复

使用道具 举报

 楼主| 发表于 2013-12-2 20:12 | 显示全部楼层
缔造者 发表于 2013-12-2 18:23
附件:

谢谢你,我试试看。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 03:59 , Processed in 0.427557 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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