2012-08-17 68 views
0

我需要合并2宏&我试图相同,但第一个宏结束它的节目error.Pls在这方面的帮助,合并两个Excel宏

Sub ERS() 
' 
' ERS Macro 
' 

' 
    ActiveWindow.SmallScroll Down:=-6 
    Range("E1:E41").Select 
    Selection.End(xlUp).Select 
    Range("E2:E100").Select 
    Selection.TextToColumns Destination:=Range("E2"), DataType:=xlDelimited, _ 
     TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ 
     Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _ 
     :=".", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _ 
     1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1)), _ 
     TrailingMinusNumbers:=True 
    Range("P2").Select 
    ActiveCell.FormulaR1C1 = "=RC[-5]&RC[-4]" 
    Range("P2").Select 
    Selection.Copy 
    Application.CutCopyMode = False 
    Selection.AutoFill Destination:=Range("P2:P100"), Type:=xlFillDefault 
    Range("P2:P100").Select 
    Selection.Copy 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    ActiveWindow.SmallScroll Down:=-21 
    Selection.Replace What:="\", Replacement:=".", LookAt:=xlPart, _ 
     SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
     ReplaceFormat:=False 
    ActiveWindow.SmallScroll Down:=-3 


    Windows("qty.xls").Activate 
    ActiveWindow.SmallScroll Down:=-12 
    Range("M2").Select 
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-9],lots.xlsx!R2C2:R100C16,15,0)" 
    Range("M2").Select 
    Selection.Copy 
    Range("N2").Select 
    Application.CutCopyMode = False 
    ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-6]" 
    Range("M2:N2").Select 
    Selection.Copy 
    Range("M2:N100").Select 
    ActiveSheet.Paste 
    ActiveWindow.SmallScroll Down:=-12 
End Sub 
+0

我在代码中看不到任何语法错误。你能指定'它显示错误'吗? – rollstuhlfahrer 2012-08-17 08:41:19

回答

0

试试这个代码(UNTESTED

让我知道你是否有任何错误。还别说错误消息和它给你的错误

Sub ERS() 
    Dim lRow As Long 

    With Thisworkbook.ActiveSheet 
     lRow = .Range("E" & .Rows.Count).End(xlUp).Row 

     .Range("E2:E" & lRow).TextToColumns Destination:=.Range("E2"), DataType:=xlDelimited, _ 
     TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ 
     Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _ 
     :=".", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, _ 
     1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1)), _ 
     TrailingMinusNumbers:=True 

     With .Range("P2:P" & lRow) 
      .FormulaR1C1 = "=RC[-5]&RC[-4]" 
      .Value = .Value 

      .Replace What:="\", Replacement:=".", LookAt:=xlPart, _ 
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
      ReplaceFormat:=False 
     End With 
    End With 

    Windows("qty.xls").Activate 
    Range("M2").FormulaR1C1 = "=VLOOKUP(RC[-9],lots.xlsx!R2C2:R100C16,15,0)" 
    Range("N2").FormulaR1C1 = "=RC[-1]*RC[-6]" 
    Range("M2:N2").Copy Range("M2:N100") 
End Sub 

我也建议你阅读this行。这正好说明了为什么你应该避免使用.Select

+0

嗨siddharth,谢谢你宝贵的解决方案。 – user1606366 2012-08-17 12:57:51

+0

我执行上面的代码,但它显示运行时错误'9'。请做必要的。 – user1606366 2012-08-17 13:00:12