循环获取编号规则
我已经尝试过X = # 到#我还没有弄清楚。 我不确定我是否需要使用“执行”或“同时”?
我基本上需要一个循环来返回所有序列,直到某个#。
如果选择的项目数 = 2,那么我需要一个循环来返回 1&2 和 2&1。
如果项目数 = 3,那么我需要返回 1&2&3、1&3&2、2&1&3、2&3&1、3&2&1、3&1&2。
基本上,这些项目必须按特定顺序选择(出于许多原因),这将
确保无论某人如何选择项目,最终结果将始终按一定的顺序计算。
如果需要,我可以提供更多详细信息,但现在我只需要帮助创建一个循环来返回所有可能的序列。
序列将始终为 1 到(用户选择的项目数)
提前致谢。
凯文
**** Hidden Message ***** 下面是一个获取阶乘数的函数
Function FACTORIAL(x As Integer) As Integer
Dim i As Integer
FACTORIAL = 1
For i = 1 To x
FACTORIAL = FACTORIAL * i
Next i
End Function
在将数据添加到数组后,可能需要使用两个for循环
这样做的问题是从数组中删除数据有点复杂。我这样做的方式是创建一个类型数组
Public Type typPLinesArray
MyHandle As String
MyLineTypeScale As String
Used As Integer
MyStartPointX As Double
MyStartPointY As Double
MyStartPointZ As Double
MyEndPointX As Double
MyEndPointY As Double
MyEndPointZ As Double
End Type
在代码中,您还需要创建要使用的数组,因为我们只定义了上面的类型:
Dim MyPLinesArray2() As typPLinesArray
现在用您的数据填充MyPLinesArray2(),设置每个字段
根据需要调整…您将为您在类型
中定义的每个区域提供一个下拉列表
MyPLinesArray2(PolyLinesFound2).MyHandle = MyLWPoly.Handle
MyPLinesArray2(PolyLinesFound2).MyLineTypeScale = MyLWPoly.LinetypeScale
MyPLinesArray2(PolyLinesFound2).Used = 0
MyPLinesArray2(PolyLinesFound2).MyStartPointX = PolyStartPoint(0)
MyPLinesArray2(PolyLinesFound2).MyEndPointX = PolyEndPoint(0)
MyPLinesArray2(PolyLinesFound2).MyStartPointY = PolyStartPoint(1)
MyPLinesArray2(PolyLinesFound2).MyEndPointY = PolyEndPoint(1)
MyPLinesArray2(PolyLinesFound2).MyStartPointZ = PolyStartPoint(2)
MyPLinesArray2(PolyLinesFound2).MyEndPointZ = PolyEndPoint(2)
请注意“用作整数”行
一旦我使用了该值,我会将其值更改为1,因此我知道我已经使用了它。当然,您必须为此编写一行代码
If MyPLinesArray2(X).Used = 0 Then
一旦您的阵列(基于您自己的个人类型)被填充/变暗,您就可以处理它了。
基本轮廓是:
For X = 0 To UBound(MyPLinesArray2)
Num1 = MyPLinesArray2(X).MyStartPointX
'Whatever you are looking for...
For Y = 0 To UBound(MyPLinesArray2)
If MyPLinesArray2(Y).Used = 0 Then
Num2 = MyPLinesArray2(Y).MyStartPointX
MyString =MyString & "," & Trim(Str(Num2))
MyPLinesArray2(Y).Used = 1
End if
Next
Next
您需要添加大量代码,第一次通过条件检查构建字符串,可能需要两个不同的.used列,.used1和.used2,以及在重新开始时将其中1个重置为0的代码。
页:
[1]