Public Sub swap (a,b)
c = a: a = b: b = c
End Sub
Dim a()
Randomize
Set spell = CreateObject("sapi.spvoice")
currentfolder = createobject("Scripting.FileSystemObject").GetFile(Wscript.ScriptFullName).ParentFolder.Path
Set ExcelApp = CreateObject("Excel.Application")
Set ExcelBook = ExcelApp.Workbooks.open(currentfolder+"/gre.xlsx")
flag0=MsgBox("选择刷词词库 红宝(选择是)3000(选择否)", vbYesNo, "提示")
if flag0=vbYes then
Set ExcelSheet = ExcelBook.Worksheets("新红宝2012")
ExcelSheet.Select
elseif flag0=vbNo then
Set ExcelSheet = ExcelBook.Worksheets("3000")
ExcelSheet.Select
end if
ExcelApp.Visible = True
flag=MsgBox("是否开启单词发音功能?", vbYesNo, "提示")
if flag0=vbYes then
i = InputBox("输入起始序号:")
if i<2 then i=2
j = InputBox("请输入终止序号(最大为6497):")
if j>6497 then j=6497
elseif flag0=vbNo then
i = InputBox("输入起始序号:")
if i<2 then i=2
j = InputBox("请输入终止序号(最大为3105):")
if j>3105 then j=3105
end if
num=j-i+1
msgbox ("您选择的单词数目为:"&num)
ReDim a(num)
For k = 1 To num
a(k) = i + k - 1
Next
For s = 1 To num
Call swap(a(s), a(Int(Rnd() * num) + 1))
Next
For m = 1 To num
if flag=vbYes then
spell.speak ExcelSheet.Range("A"&a(m)).Value
end if
re=msgbox(ExcelSheet.Range("A"&a(m)).Value&" "&ExcelSheet.Range("B"&a(m)).Value&ExcelSheet.Range("C"&a(m)).Value,vbYesNo,"加油!O(∩_∩)O~")
if re=vbNo then
ExcelSheet.Cells(a(m),4).value = ExcelSheet.Cells(a(m),4).value+1
end if
ExcelSheet.Cells(a(m),5).value = ExcelSheet.Cells(a(m),5).value+1
Next
r=MsgBox("退出并关闭gre.xlsx?", vbYesNo, "提示")
If r = vbYes Then
ExcelBook.Close (True)
ExcelApp.Quit
Set ExcelApp = Nothing
Set spell = Nothing
end If作者: max0505 时间: 2013-6-20 23:21:19
--------------------------------------------------------------------------------------------------------
大家一定都知道了著名的LastTool for GRE Words(V1.0).xls。可是我在使用的时候发现,例如我要随机第2-10的单词,运行结果如下。例如我看到abbreviate的时候,我不确定我记忆中的意思对不对,于是我得向右看它的解释,然后再在第一列记录我的错误信息。
于是我几天前,花了2天时间用MATLAB写了一个随机背单词的软件,这几天稍微修改一些小问题后,现发上来供大家使用。
运行GRE.m后,程序将先读取excel单词表,之后提示输入需要随机的起始和结束的单词序号后将开始随机背单词,如下面3张图所示。