将EXCEL中宏的代码改用VB代码执行,原在EXCEL中输入的数据改在数据中执行,代码如下:
Sub Button1_Click()
' Dim HoistNums As Long
Dim s3DMatrix1() As String ' StepProg ! (use deciSecond)
Dim s3DMatrix2() As String ' StepCurve ! (use deciSecond)
Dim CurrentTime() As Double
Dim CurrentStage() As Long
Dim HoistName As String
Dim HoistNo As Long ' パ 1 HoistNums !
Dim AvoidHoistNo As Long ' パ 1 HoistNums !
Dim StepNums() As Long ' index パ 1 HoistNums; ó羆˙计
Dim StepNoRead() As Long ' index パ 1 HoistNums; 弄˙计, 弄Ч拨玥ㄤ UBound(s3DMatrix1, 2)
Dim SeqNoWritten() As Long ' index パ 1 HoistNums; 糶ó笆计
Dim ActionMode As Long
Dim m As Long
Dim j As Long
Dim i As Long
On Error GoTo ErrTreatment:
Call ReadGlobalVariables
ReDim StepNums(1 To HoistNums)
ReDim StepNoRead(1 To HoistNums)
ReDim SeqNoWritten(1 To HoistNums)
ReDim CurrentTime(1 To HoistNums)
ReDim CurrentStage(1 To HoistNums)
j = 0
For i = 1 To HoistNums
StepNums(i) = Sheets("StepProg").Range("A1").Offset(1, 2 + 7 * (i - 1))
If StepNums(i) > j Then j = StepNums(i)
Next i
If j <= 1 Then MsgBox "No StepProg data! Nothing doing!", vbExclamation, "Button1_Click Error!": Exit Sub
ReDim s3DMatrix1(1 To HoistNums, 1 To j, 1 To 7) ' HoistProg 逆计㏕﹚! 计材绢簿(绢簿秨﹍竚)! 7 琌赣˙ЧΘ仓璸丁, ノ皗ó砆弄!
ReDim s3DMatrix2(1 To HoistNums, 1 To (j - 1) * 2, 1 To 6) ' HoistCurve 逆计㏕﹚! 蝴簑丁τ!
For HoistNo = 1 To HoistNums
For j = 1 To UBound(s3DMatrix1, 2)
For i = 1 To UBound(s3DMatrix1, 3)
s3DMatrix1(HoistNo, j, i) = ""
Next i
Next j
Next HoistNo
For HoistNo = 1 To HoistNums
For j = 1 To UBound(s3DMatrix2, 2)
For i = 1 To UBound(s3DMatrix2, 3)
s3DMatrix2(HoistNo, j, i) = ""
Next i
Next j
Next HoistNo
For HoistNo = 1 To HoistNums
For j = 1 To StepNums(HoistNo)
s3DMatrix1(HoistNo, j, 1) = Sheets("StepProg").Range("A1").Offset(3 + j - 1, 0 + 7 * (HoistNo - 1)) ' StepNo
s3DMatrix1(HoistNo, j, 2) = Sheets("StepProg").Range("A1").Offset(3 + j - 1, 1 + 7 * (HoistNo - 1)) ' Action
s3DMatrix1(HoistNo, j, 3) = Sheets("StepProg").Range("A1").Offset(3 + j - 1, 2 + 7 * (HoistNo - 1)) ' Rack
s3DMatrix1(HoistNo, j, 4) = Sheets("StepProg").Range("A1").Offset(3 + j - 1, 3 + 7 * (HoistNo - 1)) ' Dest
s3DMatrix1(HoistNo, j, 5) = Sheets("StepProg").Range("A1").Offset(3 + j - 1, 4 + 7 * (HoistNo - 1)) ' AvoidStep
s3DMatrix1(HoistNo, j, 6) = 10 * Sheets("StepProg").Range("A1").Offset(3 + j - 1, 5 + 7 * (HoistNo - 1)) ' HaltTime
s3DMatrix1(HoistNo, j, 7) = 0 ' 赣˙ЧΘ仓璸丁, ノ皗ó砆弄! s3DMatrix1(HoistNo, 1, 7) ゲ斗 0 (材˙琌绢簿癬﹍竚)!
Next j
Next HoistNo
AvoidHoistNo = 0 ' Τ皗óㄤ 1 to HoistNums, ㄤウ 0 !
HoistNo = 1 ' A ó
For i = 1 To HoistNums
CurrentTime(i) = 0
If CLng(Val(s3DMatrix1(i, 1, 2))) = 3 Or CLng(Val(s3DMatrix1(i, 1, 2))) = 4 Then ' 材˙斗绢簿
CurrentStage(i) = CLng(Val(s3DMatrix1(i, 1, 4))) ' ó材竚
Else
If CLng(Val(s3DMatrix1(i, 1, 2))) <> 3 And CLng(Val(s3DMatrix1(i, 1, 2))) <> 4 Then MsgBox "StepProg first step error!", vbCritical, "Button1_Click Error!"
Exit Sub
End If
Next i
For i = 1 To HoistNums
StepNoRead(i) = 1 ' StepProg 材掸戈魁﹍竚绢簿弄筁!
SeqNoWritten(i) = 0 ' ﹟ゼ糶ヴ笆Ω
Next i
StartTime = Timer
Sub Button1_Click()
' Dim HoistNums As Long
Dim s3DMatrix1() As String ' StepProg ! (use deciSecond)
Dim s3DMatrix2() As String ' StepCurve ! (use deciSecond)
Dim CurrentTime() As Double
Dim CurrentStage() As Long
Dim HoistName As String
Dim HoistNo As Long ' パ 1 HoistNums !
Dim AvoidHoistNo As Long ' パ 1 HoistNums !
Dim StepNums() As Long ' index パ 1 HoistNums; ó羆˙计
Dim StepNoRead() As Long ' index パ 1 HoistNums; 弄˙计, 弄Ч拨玥ㄤ UBound(s3DMatrix1, 2)
Dim SeqNoWritten() As Long ' index パ 1 HoistNums; 糶ó笆计
Dim ActionMode As Long
Dim m As Long
Dim j As Long
Dim i As Long
On Error GoTo ErrTreatment:
Call ReadGlobalVariables
ReDim StepNums(1 To HoistNums)
ReDim StepNoRead(1 To HoistNums)
ReDim SeqNoWritten(1 To HoistNums)
ReDim CurrentTime(1 To HoistNums)
ReDim CurrentStage(1 To HoistNums)
j = 0
For i = 1 To HoistNums
StepNums(i) = Sheets("StepProg").Range("A1").Offset(1, 2 + 7 * (i - 1))
If StepNums(i) > j Then j = StepNums(i)
Next i
If j <= 1 Then MsgBox "No StepProg data! Nothing doing!", vbExclamation, "Button1_Click Error!": Exit Sub
ReDim s3DMatrix1(1 To HoistNums, 1 To j, 1 To 7) ' HoistProg 逆计㏕﹚! 计材绢簿(绢簿秨﹍竚)! 7 琌赣˙ЧΘ仓璸丁, ノ皗ó砆弄!
ReDim s3DMatrix2(1 To HoistNums, 1 To (j - 1) * 2, 1 To 6) ' HoistCurve 逆计㏕﹚! 蝴簑丁τ!
For HoistNo = 1 To HoistNums
For j = 1 To UBound(s3DMatrix1, 2)
For i = 1 To UBound(s3DMatrix1, 3)
s3DMatrix1(HoistNo, j, i) = ""
Next i
Next j
Next HoistNo
For HoistNo = 1 To HoistNums
For j = 1 To UBound(s3DMatrix2, 2)
For i = 1 To UBound(s3DMatrix2, 3)
s3DMatrix2(HoistNo, j, i) = ""
Next i
Next j
Next HoistNo
For HoistNo = 1 To HoistNums
For j = 1 To StepNums(HoistNo)
s3DMatrix1(HoistNo, j, 1) = Sheets("StepProg").Range("A1").Offset(3 + j - 1, 0 + 7 * (HoistNo - 1)) ' StepNo
s3DMatrix1(HoistNo, j, 2) = Sheets("StepProg").Range("A1").Offset(3 + j - 1, 1 + 7 * (HoistNo - 1)) ' Action
s3DMatrix1(HoistNo, j, 3) = Sheets("StepProg").Range("A1").Offset(3 + j - 1, 2 + 7 * (HoistNo - 1)) ' Rack
s3DMatrix1(HoistNo, j, 4) = Sheets("StepProg").Range("A1").Offset(3 + j - 1, 3 + 7 * (HoistNo - 1)) ' Dest
s3DMatrix1(HoistNo, j, 5) = Sheets("StepProg").Range("A1").Offset(3 + j - 1, 4 + 7 * (HoistNo - 1)) ' AvoidStep
s3DMatrix1(HoistNo, j, 6) = 10 * Sheets("StepProg").Range("A1").Offset(3 + j - 1, 5 + 7 * (HoistNo - 1)) ' HaltTime
s3DMatrix1(HoistNo, j, 7) = 0 ' 赣˙ЧΘ仓璸丁, ノ皗ó砆弄! s3DMatrix1(HoistNo, 1, 7) ゲ斗 0 (材˙琌绢簿癬﹍竚)!
Next j
Next HoistNo
AvoidHoistNo = 0 ' Τ皗óㄤ 1 to HoistNums, ㄤウ 0 !
HoistNo = 1 ' A ó
For i = 1 To HoistNums
CurrentTime(i) = 0
If CLng(Val(s3DMatrix1(i, 1, 2))) = 3 Or CLng(Val(s3DMatrix1(i, 1, 2))) = 4 Then ' 材˙斗绢簿
CurrentStage(i) = CLng(Val(s3DMatrix1(i, 1, 4))) ' ó材竚
Else
If CLng(Val(s3DMatrix1(i, 1, 2))) <> 3 And CLng(Val(s3DMatrix1(i, 1, 2))) <> 4 Then MsgBox "StepProg first step error!", vbCritical, "Button1_Click Error!"
Exit Sub
End If
Next i
For i = 1 To HoistNums
StepNoRead(i) = 1 ' StepProg 材掸戈魁﹍竚绢簿弄筁!
SeqNoWritten(i) = 0 ' ﹟ゼ糶ヴ笆Ω
Next i
StartTime = Timer
解决方案 »
- FpSpread中怎么获取scrollbar的相关属性?
- 求助!数组的最大容量问题
- 请教:在使用Adodc控件和Data控件遇到的问题
- 昨天的问题没有解决,今天必须得处理掉。要不然我就完了!只要给个思路就有分!拜托大家了!
- 有关ADODC控件与MSHFLEXGRID绑定的问题
- 在vb中打开一个word文件
- 将MSfelxgrid其中的某一条记录(已知的)自动调位到当前表格中可见的位置。用什么方法呀?
- ACESS2000 数据库最大记录长度是多么????
- 接口问题。高手请进!!!在线等。急。急。急。
- 扫描仪、数码相机、PDF文档、数据库,感兴趣的朋友看过来!
- 如何屏蔽掉Win键按了以后弹出"开始"菜单的功能,但不能使Win键失效.
- 寻VB教员?
Do While TimeProceedInLoop < MaxTimeToExitLoop ' 禬筁 MaxTimeToExitLoop(箇砞 10 ) 玥眏铬癹伴
ActionMode = Val(s3DMatrix1(HoistNo, StepNoRead(HoistNo) + 1, 2))
If ActionMode > 0 And ActionMode <= 9 Then ' Action ぃ眔 0 ! ó笆﹚竡 1 9 !
Select Case ActionMode
Case 1 ' ど
j = StepNoRead(HoistNo) + 1
i = SeqNoWritten(HoistNo) + 1
s3DMatrix2(HoistNo, i, 1) = i
s3DMatrix2(HoistNo, i, 2) = ActionMode ' = 1
s3DMatrix2(HoistNo, i, 3) = CurrentStage(HoistNo)
s3DMatrix2(HoistNo, i, 4) = s3DMatrix2(HoistNo, i, 3)
s3DMatrix2(HoistNo, i, 5) = 10 * UpTime
s3DMatrix2(HoistNo, i, 6) = CurrentTime(HoistNo) + Val(s3DMatrix2(HoistNo, i, 5))
CurrentTime(HoistNo) = Val(s3DMatrix2(HoistNo, i, 6))
s3DMatrix1(HoistNo, j, 7) = CurrentTime(HoistNo)
If Val(s3DMatrix1(HoistNo, j, 6)) > 0 Then ' Τ簑丁
SeqNoWritten(HoistNo) = SeqNoWritten(HoistNo) + 1
i = SeqNoWritten(HoistNo) + 1
s3DMatrix2(HoistNo, i, 1) = i
s3DMatrix2(HoistNo, i, 2) = 5 ' 氨ゎ, 簑丁
s3DMatrix2(HoistNo, i, 3) = CurrentStage(HoistNo)
s3DMatrix2(HoistNo, i, 4) = s3DMatrix2(HoistNo, i, 3)
s3DMatrix2(HoistNo, i, 5) = Val(s3DMatrix1(HoistNo, j, 6))
s3DMatrix2(HoistNo, i, 6) = CurrentTime(HoistNo) + Val(s3DMatrix2(HoistNo, i, 5))
CurrentTime(HoistNo) = Val(s3DMatrix2(HoistNo, i, 6))
s3DMatrix1(HoistNo, j, 7) = CurrentTime(HoistNo)
End If
Case 2 '
j = StepNoRead(HoistNo) + 1
i = SeqNoWritten(HoistNo) + 1
s3DMatrix2(HoistNo, i, 1) = i
s3DMatrix2(HoistNo, i, 2) = ActionMode ' = 2
s3DMatrix2(HoistNo, i, 3) = CurrentStage(HoistNo)
s3DMatrix2(HoistNo, i, 4) = s3DMatrix2(HoistNo, i, 3)
s3DMatrix2(HoistNo, i, 5) = 10 * DownTime
s3DMatrix2(HoistNo, i, 6) = CurrentTime(HoistNo) + Val(s3DMatrix2(HoistNo, i, 5))
CurrentTime(HoistNo) = Val(s3DMatrix2(HoistNo, i, 6))
s3DMatrix1(HoistNo, j, 7) = CurrentTime(HoistNo)
If Val(s3DMatrix1(HoistNo, j, 6)) > 0 Then
SeqNoWritten(HoistNo) = SeqNoWritten(HoistNo) + 1
i = SeqNoWritten(HoistNo) + 1
s3DMatrix2(HoistNo, i, 1) = i
s3DMatrix2(HoistNo, i, 2) = 5 ' 氨ゎ
s3DMatrix2(HoistNo, i, 3) = CurrentStage(HoistNo)
s3DMatrix2(HoistNo, i, 4) = s3DMatrix2(HoistNo, i, 3)
s3DMatrix2(HoistNo, i, 5) = Val(s3DMatrix1(HoistNo, j, 6))
s3DMatrix2(HoistNo, i, 6) = CurrentTime(HoistNo) + Val(s3DMatrix2(HoistNo, i, 5))
CurrentTime(HoistNo) = Val(s3DMatrix2(HoistNo, i, 6))
s3DMatrix1(HoistNo, j, 7) = CurrentTime(HoistNo)
End If
Case 3, 4 ' 绢簿
j = StepNoRead(HoistNo) + 1
i = SeqNoWritten(HoistNo) + 1
s3DMatrix2(HoistNo, i, 1) = i
s3DMatrix2(HoistNo, i, 2) = ActionMode
s3DMatrix2(HoistNo, i, 3) = CurrentStage(HoistNo)
s3DMatrix2(HoistNo, i, 4) = s3DMatrix1(HoistNo, j, 4)
If CLng(Val(s3DMatrix2(HoistNo, i, 3))) = CLng(Val(s3DMatrix2(HoistNo, i, 4))) Then ' ㄏノ计籔计ゑ耕!
s3DMatrix2(HoistNo, i, 5) = 0
Else
s3DMatrix2(HoistNo, i, 5) = 10 * (AcceleratingTime + DeceleratingTime + MovingTime * Abs(CLng(Val(s3DMatrix2(HoistNo, i, 3))) - CLng(Val(s3DMatrix2(HoistNo, i, 4)))))
End If
s3DMatrix2(HoistNo, i, 6) = CurrentTime(HoistNo) + Val(s3DMatrix2(HoistNo, i, 5))
CurrentTime(HoistNo) = Val(s3DMatrix2(HoistNo, i, 6))
CurrentStage(HoistNo) = Val(s3DMatrix2(HoistNo, i, 4))
s3DMatrix1(HoistNo, j, 7) = CurrentTime(HoistNo)
If Val(s3DMatrix1(HoistNo, j, 6)) > 0 Then
SeqNoWritten(HoistNo) = SeqNoWritten(HoistNo) + 1
i = SeqNoWritten(HoistNo) + 1
s3DMatrix2(HoistNo, i, 1) = i
s3DMatrix2(HoistNo, i, 2) = 5 ' 氨ゎ
s3DMatrix2(HoistNo, i, 3) = CurrentStage(HoistNo)
s3DMatrix2(HoistNo, i, 4) = s3DMatrix2(HoistNo, i, 3)
s3DMatrix2(HoistNo, i, 5) = Val(s3DMatrix1(HoistNo, j, 6))
s3DMatrix2(HoistNo, i, 6) = CurrentTime(HoistNo) + Val(s3DMatrix2(HoistNo, i, 5))
CurrentTime(HoistNo) = Val(s3DMatrix2(HoistNo, i, 6))
s3DMatrix1(HoistNo, j, 7) = CurrentTime(HoistNo)
End If
Case 5 ' 氨ゎ ' 猔種: 氨ゎ笆ぃ穦Τ簑丁!
j = StepNoRead(HoistNo) + 1
i = SeqNoWritten(HoistNo) + 1
s3DMatrix2(HoistNo, i, 1) = i
s3DMatrix2(HoistNo, i, 2) = ActionMode
s3DMatrix2(HoistNo, i, 3) = CurrentStage(HoistNo)
s3DMatrix2(HoistNo, i, 4) = s3DMatrix2(HoistNo, i, 3)
s3DMatrix2(HoistNo, i, 5) = s3DMatrix1(HoistNo, j, 6)
s3DMatrix2(HoistNo, i, 6) = CurrentTime(HoistNo) + Val(s3DMatrix2(HoistNo, i, 5))
CurrentTime(HoistNo) = Val(s3DMatrix2(HoistNo, i, 6))
s3DMatrix1(HoistNo, j, 7) = CurrentTime(HoistNo)
Case 6 ' 皗ó单
j = StepNoRead(HoistNo) + 1
i = SeqNoWritten(HoistNo) + 1
AvoidHoistNo = CLng(Val(s3DMatrix1(HoistNo, j, 3)))
If AvoidHoistNo >= 1 And AvoidHoistNo <= HoistNums And AvoidHoistNo <> HoistNo Then
If StepNoRead(AvoidHoistNo) >= CInt(Val(s3DMatrix1(HoistNo, j, 5))) + 1 Then ' 璶皗癸よó赣笆弄筁!
s3DMatrix2(HoistNo, i, 1) = i
s3DMatrix2(HoistNo, i, 2) = 5 ' ActionMode ' Notice: 单!!
s3DMatrix2(HoistNo, i, 3) = CurrentStage(HoistNo)
s3DMatrix2(HoistNo, i, 4) = s3DMatrix2(HoistNo, i, 3)
' If Val(s3DMatrix1(AvoidHoistNo, CInt(Val(s3DMatrix1(HoistNo, j, 5))) + 1, 7)) >= CurrentTime(HoistNo) Then
If Val(s3DMatrix1(AvoidHoistNo, CInt(Val(s3DMatrix1(HoistNo, j, 5))), 7)) >= CurrentTime(HoistNo) Then
s3DMatrix2(HoistNo, i, 6) = Val(s3DMatrix1(AvoidHoistNo, CInt(Val(s3DMatrix1(HoistNo, j, 5))), 7))
Else
s3DMatrix2(HoistNo, i, 6) = CurrentTime(HoistNo)
End If
s3DMatrix2(HoistNo, i, 5) = Val(s3DMatrix2(HoistNo, i, 6)) - CurrentTime(HoistNo)
CurrentTime(HoistNo) = Val(s3DMatrix2(HoistNo, i, 6))
s3DMatrix1(HoistNo, j, 7) = CurrentTime(HoistNo)
' 猔種: 皗ó单笆ぃ莱Τ簑丁!
' If Val(s3DMatrix1(HoistNo, j, 6)) > 0 Then
' SeqNoWritten(HoistNo) = SeqNoWritten(HoistNo) + 1
' i = SeqNoWritten(HoistNo) + 1
' s3DMatrix2(HoistNo, i, 1) = i
' s3DMatrix2(HoistNo, i, 2) = 5 ' 氨ゎ
' s3DMatrix2(HoistNo, i, 3) = CurrentStage(HoistNo)
' s3DMatrix2(HoistNo, i, 4) = s3DMatrix2(HoistNo, i, 3)
' s3DMatrix2(HoistNo, i, 5) = Val(s3DMatrix1(HoistNo, j, 6))
' s3DMatrix2(HoistNo, i, 6) = CurrentTime(HoistNo) + Val(s3DMatrix2(HoistNo, i, 5))
' CurrentTime(HoistNo) = Val(s3DMatrix2(HoistNo, i, 6))
' s3DMatrix1(HoistNo, j, 7) = CurrentTime(HoistNo)
' End If
Else
HoistNo = AvoidHoistNo
End If
Else
MsgBox "Hoist " & fnHoistNo(HoistNo, "Rev") & " Avoid hoist error!", vbCritical, "Button1_Click Error!"
End If
Case 7, 8, 9 ' ㄤウ笆
j = StepNoRead(HoistNo) + 1
i = SeqNoWritten(HoistNo) + 1
s3DMatrix2(HoistNo, i, 1) = i
s3DMatrix2(HoistNo, i, 2) = ActionMode
s3DMatrix2(HoistNo, i, 3) = CurrentStage(HoistNo)
s3DMatrix2(HoistNo, i, 4) = s3DMatrix2(HoistNo, i, 3)
s3DMatrix2(HoistNo, i, 5) = 0 ' ヘ玡ゼ笿ㄤウ笆, 既安砞ぃ丁!
s3DMatrix2(HoistNo, i, 6) = CurrentTime(HoistNo) + Val(s3DMatrix2(HoistNo, i, 5))
CurrentTime(HoistNo) = Val(s3DMatrix2(HoistNo, i, 6))
s3DMatrix1(HoistNo, j, 7) = CurrentTime(HoistNo)
If Val(s3DMatrix1(HoistNo, j, 6)) > 0 Then
SeqNoWritten(HoistNo) = SeqNoWritten(HoistNo) + 1
i = SeqNoWritten(HoistNo) + 1
s3DMatrix2(HoistNo, i, 1) = i
s3DMatrix2(HoistNo, i, 2) = 5 ' 氨ゎ
s3DMatrix2(HoistNo, i, 3) = CurrentStage(HoistNo)
s3DMatrix2(HoistNo, i, 4) = s3DMatrix2(HoistNo, i, 3)
s3DMatrix2(HoistNo, i, 5) = Val(s3DMatrix1(HoistNo, j, 6))
s3DMatrix2(HoistNo, i, 6) = CurrentTime(HoistNo) + Val(s3DMatrix2(HoistNo, i, 5))
CurrentTime(HoistNo) = Val(s3DMatrix2(HoistNo, i, 6))
s3DMatrix1(HoistNo, j, 7) = CurrentTime(HoistNo)
End If
End Select
End If
If HoistNo = AvoidHoistNo Then ' ボ笿皗ó笆⊿Τ秆∕ぇ! 传癸よó膥尿弄!
AvoidHoistNo = 0
Else
StepNoRead(HoistNo) = StepNoRead(HoistNo) + 1 ' 絋粄セ˙弄Ч拨
If ActionMode > 0 And ActionMode <= 9 Then SeqNoWritten(HoistNo) = SeqNoWritten(HoistNo) + 1 ' Τ笆糶!
End If
If StepNoRead(HoistNo) >= StepNums(HoistNo) Then ' 璝セó˙弄Ч拨!
m = 1 ' m 弄Чó计!
For i = 1 To HoistNums - 1 ' 浪琩琌弄Ч┮Τó┮Τ˙!
j = ((HoistNo + i - 1) Mod HoistNums) + 1
If StepNoRead(j) >= StepNums(j) Then ' 狦硂ó竒弄Ч!
m = m + 1
ElseIf StepNoRead(j) < StepNums(j) Then ' 狦硂ó临⊿弄Ч!
HoistNo = j ' 传硂ó膥尿弄!
Exit For
End If
Next i
If m >= HoistNums Then Exit Do ' 场ó弄Ч拨, 瞒秨 Do While 癹伴!
End If
ThisTime = Timer
If StartTime > ThisTime Then StartTime = 86400 - StartTime
TimeProceedInLoop = ThisTime - StartTime
If TimeProceedInLoop >= MaxTimeToExitLoop Then MsgBox "To much time used in step program decoding! Exit loop!", vbCritical, "Button1_Click Error!": Exit Do
Loop
Sheets("StepCurve").Range("A1", "AP150").Clear ' 睲奔 150 rows, 7*6 columns!
Sheets("StepCurve").Range("A1").Offset(0, 0) = "Hoists"
Sheets("StepCurve").Range("A1").Offset(0, 1) = HoistNums
For m = 1 To HoistNums
Sheets("StepCurve").Range("A1").Offset(1, 0 + 7 * (m - 1)) = Chr(Asc("A") + m - 1) ' ΤㄤウΡ絬, パㄏノ Sheets("StepCurve") !
Sheets("StepCurve").Range("A1").Offset(1, 1 + 7 * (m - 1)) = "Sequences"
Sheets("StepCurve").Range("A1").Offset(1, 2 + 7 * (m - 1)) = SeqNoWritten(m)
Sheets("StepCurve").Range("A1").Offset(2, 0 + 7 * (m - 1)) = "SequenceNo"
Sheets("StepCurve").Range("A1").Offset(2, 1 + 7 * (m - 1)) = "Action"
Sheets("StepCurve").Range("A1").Offset(2, 2 + 7 * (m - 1)) = "BeforePosition"
Sheets("StepCurve").Range("A1").Offset(2, 3 + 7 * (m - 1)) = "AfterPosition"
Sheets("StepCurve").Range("A1").Offset(2, 4 + 7 * (m - 1)) = "UsedTime"
Sheets("StepCurve").Range("A1").Offset(2, 5 + 7 * (m - 1)) = "CumulatedTime"
Sheets("StepCurve").Range("A1").Offset(5 + SeqNoWritten(m) - 1, 0 + 7 * (m - 1)) = "Branches"
For j = 1 To SeqNoWritten(m)
Sheets("StepCurve").Range("A1").Offset(3 + j - 1, 0 + 7 * (m - 1)) = s3DMatrix2(m, j, 1)
Sheets("StepCurve").Range("A1").Offset(3 + j - 1, 1 + 7 * (m - 1)) = s3DMatrix2(m, j, 2)
Sheets("StepCurve").Range("A1").Offset(3 + j - 1, 2 + 7 * (m - 1)) = s3DMatrix2(m, j, 3)
Sheets("StepCurve").Range("A1").Offset(3 + j - 1, 3 + 7 * (m - 1)) = s3DMatrix2(m, j, 4)
Sheets("StepCurve").Range("A1").Offset(3 + j - 1, 4 + 7 * (m - 1)) = s3DMatrix2(m, j, 5) / 10
Sheets("StepCurve").Range("A1").Offset(3 + j - 1, 5 + 7 * (m - 1)) = s3DMatrix2(m, j, 6) / 10
Next j
Next m
' 衡 DippingTime
Sheets("DippingTime").Range("A5", "D100").Clear
Dim v
Dim vCell1
Dim vCell2
Set v = ActiveSheet
Sheets("Instr").Activate
Set vCell1 = Cells.Find(What:="totalStageNums", After:=Range("A1"), LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
Set vCell2 = Sheets("DippingTime").Range("A1")
vCell2.Offset(0, 1) = deciCycleTime / 10
For m = 1 To totalStageNums
vCell2.Offset(2 + m, 0) = m
vCell2.Offset(2 + m, 1) = vCell1.Offset(m, 1)
vCell2.Offset(2 + m, 2) = 0
vCell2.Offset(2 + m, 3) = 0
Next m
v.Activate
Set vCell1 = Sheets("StepCurve").Range("A1")
For HoistNo = 1 To HoistNums
For j = 1 To vCell1.Offset(1, 2 + 7 * (HoistNo - 1))
ActionMode = vCell1.Offset(3 + j - 1, 1 + 7 * (HoistNo - 1)) ' action
If 1 = ActionMode Then ' up
i = vCell1.Offset(3 + j - 1, 3 + 7 * (HoistNo - 1)) ' afterposition(=beforeposition)
vCell2.Offset(2 + i, 3) = vCell1.Offset(3 + j - 1, 5 + 7 * (HoistNo - 1)) ' cumulated time
ElseIf 2 = ActionMode Then ' down
i = vCell1.Offset(3 + j - 1, 3 + 7 * (HoistNo - 1))
vCell2.Offset(2 + i, 2) = vCell1.Offset(3 + j - 1, 5 + 7 * (HoistNo - 1))
End If
Next j
Next HoistNo
Exit Sub
ErrTreatment:
MsgBox Err.Description, vbCritical, "Make StepCurve error!" 'AppEXEName
End Sub
Private Sub Command1_Click()
Dim ex As Excel.Application
Dim wb As Excel.Workbook
Set ex = CreateObject("Excel.Application")
Set wb = ex.Workbooks.Open("c:\1.xls") ' 改成你的文件路径 在文件里写几个数试试
Set sh = wb.Sheets(1)
wb.Worksheets(1).Select
'ActiveCell.Value = "你好!!!" '给当前单元格赋值
'Range("a1").Value = "hello" 'A1单元格内容设为 "HELLO"
'MsgBox ActiveCell.Address '得到当前单元格的地址
'Selection.HorizontalAlignment = xlLeft '选定单元格左对齐
'Selection.HorizontalAlignment = xlCenter ' 选定单元格居中
'Selection.HorizontalAlignment = xlRight '选定单元格右对齐
' With Selection.Font '选定单元格字体为宋体20号字
'.Name = "宋体"
'.Size = 20
' End With
'Range("D10").Insert Shift:=xlToRight '在D10单元格处添加一新单元格,原D10格右移
'Range("C2").Insert Shift:=xlDown '在C2单元格处添加一新单元格,原C2格下移
'Rows(2).EntireRow.Insert '在第2行前添加一空白行,原第2行下移
'Columns(3).EntireColumn.Insert '在C列前添加一空白列,原C列右移
' Columns("A:D").Delete Shift:=xlToLeft '删除A列至D列,其右侧列左移
'Rows("3:5").Delete Shift:=xlUp '删除第3行至第5行,其下方行上移
'Range("B2").EntireRow.Delete '删除第2行
'Range("C4").EntireColumn.Delete '删除C列
'Range("B10:C13").Copy '复制B10至C13单元格区域
'Cells(1, 2).Cut '剪切B1单元格
'Range("D10").Select
'ActiveSheet.Paste '自D10单元格起粘贴剪贴板中的内容
'Sheets.Add before:=Sheets(1) '在第1工作表前添加新工作表
'Sheets.Add after:=Sheets(Sheets.Count) '在最后工作表后添加新工作表
'ActiveSheet.Move before:=Sheets(2) '将当前工作表移动至第2工作表之前
'ActiveSheet.Name = "工作表名" '将当前工作表命名为"工作表名"
'Range("a2:d4").Value = "Data" '坐A2写入数据到D4
'Range("A2:D2").MergeCells = True '合并单元格表头
'Columns(2).ColumnWidth = 12 '设置第14列列宽为12
'Columns("a:i").AutoFit 'a到i列自动调整列宽
'Rows(3).WrapText = True '让第三行各单元格中的文本自动换行
'Rows(3) .VerticalAlignment = xlTop 让表头自动向上对齐
'Rows(2).Interior.ColorIndex = 5 '设置第2行底色为蓝色
'Rows(1).Font.ColorIndex = 4 '表格的标题上色
'Range("C10:G22").Select 'C10:G22选定当前单元格
'Range("a2:j28").Select '在A2到J28区内加网格线(细)
'Selection.Borders(xlDiagonalDown).LineStyle = xlNone
'Selection.Borders(xlDiagonalUp).LineStyle = xlNone
'With Selection.Borders(xlEdgeLeft) '竖线
'.LineStyle = xlContinuous
'.Weight = xlThin
'.ColorIndex = xlAutomatic
'End With
'With Selection.Borders(xlEdgeTop) '横线
'.LineStyle = xlContinuous
'.Weight = xlThin
'.ColorIndex = xlAutomatic
'End With 'wb.Close
'ex.Quit
ex.Visible = True
Set ex = Nothing
Set wb = Nothing
Set sh = Nothing
End Sub