将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
 

解决方案 »

  1.   

    接上
     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
      
      

  2.   

    接上
          
            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
      

  3.   

    你可以看一下这个....  都是在宏中录制的
    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