一个有宏的EXCEL(A.xls)处理后,想另存为其它的文件(B.xls),这样想让(B.xls)在打开后不需要做宏的处理(使宏无效),谁能告诉一下处理的方法。谢谢

解决方案 »

  1.   

    打开B.xls,按下 Alt+F8,然后把所有的宏一个个删掉咯
      

  2.   

    用一段vba代码在你另存文件时删除另存文件中的代码。
      

  3.   

    Private Sub CommandButton1_Click()
      Dim objVBC As Object
      Dim objMdl As Object
      Dim Arr() As Variant
      Dim intCounter As Integer
      Dim txt As String
       
      ReDim Arr(1 To 3, 1 To ActiveWorkbook.VBProject.VBComponents.Count)
      intCounter = 0
      
      For Each objVBC In ActiveWorkbook.VBProject.VBComponents
          Set objMdl = objVBC.CodeModule   '引用單無內的程式碼
          intCounter = intCounter + 1
          Arr(1, intCounter) = objVBC.Type
          Arr(2, intCounter) = objVBC.Name
          If objMdl.CountOfLines > 0 Then
             txt = objVBC.CodeModule.Lines(1, objMdl.CountOfLines)
          End If
            
          Arr(3, intCounter) = txt
          Select Case Arr(1, intCounter)
          Case 1      'Module
               ActiveWorkbook.VBProject.VBComponents.Remove objVBC
          Case 2      'Class1
               ActiveWorkbook.VBProject.VBComponents.Remove objVBC
          Case 3, 100 'UserForm or Thisworkbook
               objVBC.CodeModule.DeleteLines 1, objMdl.CountOfLines
               DoEvents
          End Select
      Next objVBC
    End Sub