新足迹

 找回密码
 注册

精华好帖回顾

· 澳大利亚的都市钟楼 一个让人熟视无睹的标志! (2025-7-8) 慕贤 · 美容+养身+加坚持就有回报3年经验大分享,标题要长长长长滴 (2010-8-4) 江南一梦
· 写给年幼无知的我--出国到现在的历程 (2008-10-19) cotta · 秋意堪培拉 (2004-12-13) leeshine
Advertisement
Advertisement
查看: 4262|回复: 13

[IT] Excel 自动出题 出错 [复制链接]

发表于 2017-6-4 16:05 |显示全部楼层
此文章由 风万里 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 风万里 所有!转贴必须注明作者、出处和本声明,并保持内容完整
在网上找到一个用Excel做一个自动出题,小学四则混合运算,请大神帮忙
网上的链接:http://www.educity.cn/office/4260.html

我用的Excel2013照着说明做,始终报错,有哪位大神能帮忙看看是不是code有问题?
耳旁尽是“嗖嗖”声,
无数砖头砸过来——
Advertisement
Advertisement

发表于 2017-6-4 17:39 |显示全部楼层
此文章由 tvc889 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 tvc889 所有!转贴必须注明作者、出处和本声明,并保持内容完整
  If rng.Of(0, 3) >= 0 And rng.Offset(0, 3) <= Me.ComboBox1.Value * 1 Then Exit Do

改成

  If rng.Offset(0, 3) >= 0 And rng.Offset(0, 3) <= Me.ComboBox1.Value * 1 Then Exit Do

发表于 2017-6-4 22:56 |显示全部楼层
此文章由 风万里 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 风万里 所有!转贴必须注明作者、出处和本声明,并保持内容完整
tvc889 发表于 2017-6-4 17:39
If rng.Of(0, 3) >= 0 And rng.Offset(0, 3) = 0 And rng.Offset(0, 3)

多谢指教,仍然报错,Debug显示红字部分:
Private Sub UserFoem_Activate()
  ComboBox1.Value = 100
  ComboBox1.List = Array(100, 1000, 10000)
End Sub
Private Sub CommandButton1_Click()
   '设置答案区域的数字格式, 其精确位置由复选框决定, 如果勾选复选框则精确到两位
   [G5:G14].NumberFormatLocal = IIf(Me.CheckBox1, "0.00", "0")
   For Each Rng In [D514]
     Do
      Rng.Value = Round(Rnd(100) * Me.ComboBox1.Value, IIf(CheckBox1, 2, 0)) & Choose(1 + Rnd() * 4, "+", "-", "×", "÷") & Round(Rnd(100) * Me.ComboBox1.Value, IIf(CheckBox1, 2, 0)) & "="
     '如果计算结果在0到复合框的值值个范围内则停止循环, 否则重新生成题目
     If Rng.Offset(0, 3) >= 0 And Rng.Offset(0, 3) <= Me.ComboBox1.Value * 1 Then Exit Do
     Loop
   Next
   [E5:f15] = "" '清空答题区
   [D].EntireColumn.AutoFit
End Sub
耳旁尽是“嗖嗖”声,
无数砖头砸过来——

发表于 2017-6-5 10:05 |显示全部楼层
此文章由 tvc889 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 tvc889 所有!转贴必须注明作者、出处和本声明,并保持内容完整
风万里 发表于 2017-6-4 22:56
多谢指教,仍然报错,Debug显示红字部分:
Private Sub UserFoem_Activate()
  ComboBox1.Value = 100

Private Sub UserFoem_Activate()

should be:

Private Sub UserForm_Activate()

发表于 2017-6-5 22:03 |显示全部楼层
此文章由 风万里 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 风万里 所有!转贴必须注明作者、出处和本声明,并保持内容完整
多谢楼上大神手把手教我debug

发表于 2017-6-5 22:33 |显示全部楼层
此文章由 风万里 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 风万里 所有!转贴必须注明作者、出处和本声明,并保持内容完整
现在可以出题了,但是检查评分报错:Sub or Fuction not defined.
源代码如下:
Sub 出题()
  UserForm1.Show 0
End Sub
Sub 评分()
  Dim i As Byte
  ActiveWorkbook.PrecisionAsDisplayed = True
  '工作薄中的计算将按照屏幕显示的数字精度为准
  For Each Rng In [f5:f14]
  '遍历答题区
    If Len(Rng.Offset(0, -1)) > 0 Then
       If Rng.Offset(0, -1).Value = Rng.Offset(0, 1).Value Then
       '如果答题者的答案与标准答案一致
         Rng.Valule = "对"  ' '返回“对”
         i = i + 1
       Els
         Rng.Value = "错"
       End If
     End If
   Next
   [F15] = "正确率:" & Format(i / 10, "0%")
End Sub
耳旁尽是“嗖嗖”声,
无数砖头砸过来——
Advertisement
Advertisement

发表于 2017-6-6 19:34 |显示全部楼层
此文章由 tvc889 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 tvc889 所有!转贴必须注明作者、出处和本声明,并保持内容完整
风万里 发表于 2017-6-5 22:33
现在可以出题了,但是检查评分报错:Sub or Fuction not defined.
源代码如下:
Sub 出题()

Rng.Valule = "对"  ' '返回“对”

改成:

Rng.Value = "对"  ' '返回“对”

发表于 2017-6-6 20:19 |显示全部楼层
此文章由 风万里 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 风万里 所有!转贴必须注明作者、出处和本声明,并保持内容完整
多谢楼上的,另外
  i = i + 1
       Els
         Rng.Value = "错"
其中Els, 要改成:

  i = i + 1
       Else
         Rng.Value = "错"

发表于 2017-6-6 20:22 |显示全部楼层
此文章由 风万里 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 风万里 所有!转贴必须注明作者、出处和本声明,并保持内容完整
多谢大神,现在可以运行了,但是会出现负数的结果,另外评分也不准确,都是“错”,即使答对的情况下。
也不知道哪路神人写的代码,也不检查好就发布,搞得我们这些外行晕菜
耳旁尽是“嗖嗖”声,
无数砖头砸过来——

发表于 2017-6-6 20:31 |显示全部楼层
此文章由 tvc889 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 tvc889 所有!转贴必须注明作者、出处和本声明,并保持内容完整
风万里 发表于 2017-6-6 20:22
多谢大神,现在可以运行了,但是会出现负数的结果,另外评分也不准确,都是“错”,即使答对的情况下。
也 ...

代码里根本没有做正确答案的部分,你得自己弄。

发表于 2017-6-6 20:47 |显示全部楼层
此文章由 风万里 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 风万里 所有!转贴必须注明作者、出处和本声明,并保持内容完整
出题会出现负数,
另外除法会出现小数,
作者似乎忘了给offset(0,1)赋值,从而导致判断结果对错时,offset(0,-1)和offset(0,1)不能有效比较。
Advertisement
Advertisement

发表于 2017-6-7 10:41 |显示全部楼层
此文章由 tvc889 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 tvc889 所有!转贴必须注明作者、出处和本声明,并保持内容完整
风万里 发表于 2017-6-6 20:47
出题会出现负数,
另外除法会出现小数,
作者似乎忘了给offset(0,1)赋值,从而导致判断结果对错时,offset( ...

这是个框架,抛砖引玉。并不是很完善。你自己可以完善一下。

发表于 2017-6-7 19:59 来自手机 |显示全部楼层
此文章由 风万里 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 风万里 所有!转贴必须注明作者、出处和本声明,并保持内容完整
没学过编程,汗~~

发表于 2017-6-7 22:13 |显示全部楼层
此文章由 tvc889 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 tvc889 所有!转贴必须注明作者、出处和本声明,并保持内容完整
风万里 发表于 2017-6-7 19:59
没学过编程,汗~~

慢慢来吧,用的多了就好了。

发表回复

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

本版积分规则

Advertisement
Advertisement
返回顶部