Excel精英培训网

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

[已解决]提示设置

[复制链接]
发表于 2013-6-21 12:43 | 显示全部楼层 |阅读模式
提示设置.zip (14.83 KB, 下载次数: 13)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-6-21 12:53 | 显示全部楼层
  1. Private Sub CommandButton4_Click()
  2.     Dim bl As Boolean
  3.     bl = MsgBox("是否导入名次数据", vbInformation + vbYesNo) = vbYes
  4.     For i = 1 To 8
  5.         If Controls("TextBox" & i).Text <> "" Then k = k + 1
  6.     Next i
  7.     If k = 0 Then MsgBox "  成绩栏不能为空!", vbOKOnly, " 系统提示": Exit Sub

  8.     Sheet2.[a2].Value = TextBox1.Value
  9.     Sheet2.[a3].Value = TextBox2.Value
  10.     Sheet2.[a4].Value = TextBox3.Value
  11.     Sheet2.[a5].Value = TextBox4.Value
  12.     Sheet2.[a6].Value = TextBox5.Value
  13.     Sheet2.[a7].Value = TextBox6.Value
  14.     Sheet2.[a8].Value = TextBox7.Value
  15.     Sheet2.[a9].Value = TextBox8.Value

  16.     If bl Then
  17.         Sheet2.[b2].Value = TextBox9.Value
  18.         Sheet2.[b3].Value = TextBox10.Value
  19.         Sheet2.[b4].Value = TextBox11.Value
  20.         Sheet2.[b5].Value = TextBox12.Value
  21.         Sheet2.[b6].Value = TextBox13.Value
  22.         Sheet2.[b7].Value = TextBox14.Value
  23.         Sheet2.[b8].Value = TextBox15.Value
  24.         Sheet2.[b9].Value = TextBox16.Value
  25.     End If
  26. End Sub
复制代码
你看这样成不?
回复

使用道具 举报

发表于 2013-6-21 12:59 | 显示全部楼层
再改一下。
  1. Private Sub CommandButton4_Click()
  2.    
  3.     Dim bl As Boolean

  4.     bl = MsgBox("是否导入名次数据", vbInformation + vbYesNo) = vbYes

  5.     For i = 1 To 8
  6.         If Len(Controls("TextBox" & i).Text) = 0 Then
  7.             MsgBox "  成绩栏不能为空!", vbOKOnly, " 系统提示": Exit Sub
  8.         End If
  9.     Next i

  10.     If bl Then
  11.         For i = 9 To 16
  12.             If Len(Controls("TextBox" & i).Text) = 0 Then
  13.                 MsgBox "  名次栏不能为空!", vbOKOnly, " 系统提示": Exit Sub
  14.             End If
  15.         Next
  16.     End If

  17.     With Sheet2
  18.         .[a2].Value = TextBox1.Value
  19.         .[a3].Value = TextBox2.Value
  20.         .[a4].Value = TextBox3.Value
  21.         .[a5].Value = TextBox4.Value
  22.         .[a6].Value = TextBox5.Value
  23.         .[a7].Value = TextBox6.Value
  24.         .[a8].Value = TextBox7.Value
  25.         .[a9].Value = TextBox8.Value

  26.         If bl Then
  27.             .[b2].Value = TextBox9.Value
  28.             .[b3].Value = TextBox10.Value
  29.             .[b4].Value = TextBox11.Value
  30.             .[b5].Value = TextBox12.Value
  31.             .[b6].Value = TextBox13.Value
  32.             .[b7].Value = TextBox14.Value
  33.             .[b8].Value = TextBox15.Value
  34.             .[b9].Value = TextBox16.Value
  35.         End If
  36.     End With
  37.    
  38.     MsgBox "导入完成"
  39. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-6-21 13:01 | 显示全部楼层
hwc2ycy 发表于 2013-6-21 12:53
你看这样成不?

谢谢!应该是名次为空时,提示是否要导入名次!
回复

使用道具 举报

发表于 2013-6-21 13:01 | 显示全部楼层
  1. Private Sub CommandButton4_Click()
  2.     '是否导入名次数据
  3.     Dim bl As Boolean

  4.     '错误处理
  5.     On Error GoTo ErrorHandler
  6.    
  7.     bl = MsgBox("是否导入名次数据", vbInformation + vbYesNo) = vbYes
  8.    
  9.     '判断成绩栏是否都有填完整
  10.     For i = 1 To 8
  11.         If Len(Controls("TextBox" & i).Text) = 0 Then
  12.             MsgBox "  成绩栏不能为空!", vbOKOnly, " 系统提示": Exit Sub
  13.         End If
  14.     Next i

  15.     '如果导入名次数据,判断所有的成绩栏数据是否填完整
  16.     If bl Then
  17.         For i = 9 To 16
  18.             If Len(Controls("TextBox" & i).Text) = 0 Then
  19.                 MsgBox "  名次栏不能为空!", vbOKOnly, " 系统提示": Exit Sub
  20.             End If
  21.         Next
  22.     End If
  23.    
  24.     '写入数据
  25.     With Sheet2
  26.         .[a2].Value = TextBox1.Value
  27.         .[a3].Value = TextBox2.Value
  28.         .[a4].Value = TextBox3.Value
  29.         .[a5].Value = TextBox4.Value
  30.         .[a6].Value = TextBox5.Value
  31.         .[a7].Value = TextBox6.Value
  32.         .[a8].Value = TextBox7.Value
  33.         .[a9].Value = TextBox8.Value

  34.         If bl Then
  35.             .[b2].Value = TextBox9.Value
  36.             .[b3].Value = TextBox10.Value
  37.             .[b4].Value = TextBox11.Value
  38.             .[b5].Value = TextBox12.Value
  39.             .[b6].Value = TextBox13.Value
  40.             .[b7].Value = TextBox14.Value
  41.             .[b8].Value = TextBox15.Value
  42.             .[b9].Value = TextBox16.Value
  43.         End If
  44.     End With

  45.     MsgBox "导入完成"
  46.     Exit Sub

  47. '容错处理
  48. ErrorHandler:
  49.     MsgBox Err.Number & vbCrLf & _
  50.            Err.Description
  51. End Sub
复制代码
回复

使用道具 举报

发表于 2013-6-21 13:04 | 显示全部楼层
为空的时候提示,如果要改入,空的也写入么?
回复

使用道具 举报

发表于 2013-6-21 13:08 | 显示全部楼层
  1. Private Sub CommandButton4_Click()
  2. '是否导入名次数据
  3.     Dim bl As Boolean

  4.     '错误处理
  5.     On Error GoTo ErrorHandler



  6.     '判断成绩栏是否都有填完整
  7.     For i = 1 To 8
  8.         If Len(Controls("TextBox" & i).Text) = 0 Then
  9.             MsgBox "  成绩栏不能为空!", vbOKOnly, " 系统提示": Exit Sub
  10.         End If
  11.     Next i

  12.     '如果导入名次数据,判断所有的成绩栏数据是否填完整
  13.     For i = 9 To 16
  14.         If Len(Controls("TextBox" & i).Text) = 0 Then
  15.             bl = MsgBox("名次数据有空值,是否导入名次数据", vbInformation + vbYesNo) = vbYes
  16.             Exit For
  17.         End If
  18.     Next


  19.     '写入数据
  20.     With Sheet2
  21.         .[a2].Value = TextBox1.Value
  22.         .[a3].Value = TextBox2.Value
  23.         .[a4].Value = TextBox3.Value
  24.         .[a5].Value = TextBox4.Value
  25.         .[a6].Value = TextBox5.Value
  26.         .[a7].Value = TextBox6.Value
  27.         .[a8].Value = TextBox7.Value
  28.         .[a9].Value = TextBox8.Value

  29.         If bl Then
  30.             .[b2].Value = TextBox9.Value
  31.             .[b3].Value = TextBox10.Value
  32.             .[b4].Value = TextBox11.Value
  33.             .[b5].Value = TextBox12.Value
  34.             .[b6].Value = TextBox13.Value
  35.             .[b7].Value = TextBox14.Value
  36.             .[b8].Value = TextBox15.Value
  37.             .[b9].Value = TextBox16.Value
  38.         End If
  39.     End With

  40.     MsgBox "导入完成"
  41.     Exit Sub

  42.     '容错处理
  43. ErrorHandler:
  44.     MsgBox Err.Number & vbCrLf & _
  45.            Err.Description
  46. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-6-21 13:08 | 显示全部楼层
hwc2ycy 发表于 2013-6-21 13:01

无法运行,应该是成绩与名次不为空时,无需提示。另外,成绩栏是优先提示,

回复

使用道具 举报

发表于 2013-6-21 13:10 | 显示全部楼层
我这测试是可以用的,我不知道你怎么用的。另外,现在的本来就是先判断成绩,再来判断名次的。

另外,你是要求所有的没填还是只有有一个没填就提示,这都要说清楚。
回复

使用道具 举报

 楼主| 发表于 2013-6-21 13:14 | 显示全部楼层
hwc2ycy 发表于 2013-6-21 13:10
我这测试是可以用的,我不知道你怎么用的。另外,现在的本来就是先判断成绩,再来判断名次的。

另外,你 ...

谢谢,有一个就算填了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 05:04 , Processed in 0.396676 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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