从文本文件中随机选择一行,但不选择同一行两次VBA

从文本文件中随机选择一行,但不选择同一行两次VBA,vba,random,text,powerpoint,Vba,Random,Text,Powerpoint,我有一个带问题的文本文件,每行一个。我希望powerpoint从文件中随机选择一行,并将该行放入标签中。我还想确保每条线路只使用一次。如果没有简单的方法,可以删除从文本文件中选择的行。我在网上找到了一些代码,但它不能满足我的要求(不能使用同一行两次)。试试这个 Sub do_file() Dim myArray Open [YOUR TEXT FILE HERE] For Input As #1 fileinfo = Input(LOF(1), #1) Close #1

我有一个带问题的文本文件,每行一个。我希望powerpoint从文件中随机选择一行,并将该行放入标签中。我还想确保每条线路只使用一次。如果没有简单的方法,可以删除从文本文件中选择的行。我在网上找到了一些代码,但它不能满足我的要求(不能使用同一行两次)。

试试这个

Sub do_file()
  Dim myArray

  Open [YOUR TEXT FILE HERE] For Input As #1
    fileinfo = Input(LOF(1), #1)
  Close #1
  myArray = Split(fileinfo, vbCrLf)

  myArray = ShuffleArray(myArray)

  For i = 0 To UBound(myArray)
    [YOUR LABEL HERE] = myArray(i)
  Next i

End Sub

Function ShuffleArray(OrigArray As Variant) As Variant
  Dim RandNum As Long
  Dim Holder As Variant
  Dim ReturnArray() As Variant

  ReDim ReturnArray(LBound(OrigArray) To UBound(OrigArray))
  For i = LBound(OrigArray) To UBound(OrigArray)
    ReturnArray(i) = OrigArray(i)
  Next i
  For i = LBound(OrigArray) To UBound(OrigArray)
    RandNum = Int((UBound(OrigArray) - LBound(OrigArray)) * Rnd + LBound(OrigArray))
    If i <> RandNum Then
        Holder = ReturnArray(i)
        ReturnArray(i) = ReturnArray(RandNum)
        ReturnArray(RandNum) = Holder
    End If
  Next i
  ShuffleArray = ReturnArray

End Function
子do_文件()
微光阵列
打开[此处的文本文件]作为#1输入
fileinfo=输入(LOF(1),#1)
关闭#1
myArray=Split(文件信息,vbCrLf)
myArray=Shuffarray(myArray)
对于i=0到UBound(myArray)
[此处的标签]=myArray(i)
接下来我
端接头
函数ShuffleArray(OrigArray作为变体)作为变体
Dim RandNum尽可能长
变光支架
Dim ReturnArray()作为变量
ReDim返回阵列(LBound(origaray)到UBound(origaray))
对于i=LBound(origaray)到UBound(origaray)
ReturnArray(i)=OrigArray(i)
接下来我
对于i=LBound(origaray)到UBound(origaray)
RandNum=Int((UBound(OrigArray)-LBound(OrigArray))*Rnd+LBound(OrigArray))
如果我是RandNum的话
Holder=ReturnArray(一)
ReturnArray(i)=ReturnArray(RandNum)
ReturnArray(RandNum)=保持器
如果结束
接下来我
ShuffleArray=ReturnArray
端函数

这将读取文件并将每行放入一个数组中,然后将数组洗牌。然后,它将在随机排列的数组中循环,在该数组中,您需要为问题的输出添加标签。

请发布代码,并准确指出错误所在。