Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 添加到现有宏_Vba_Excel_Excel 2010 - Fatal编程技术网

Vba 添加到现有宏

Vba 添加到现有宏,vba,excel,excel-2010,Vba,Excel,Excel 2010,我在论坛上看到了关于添加宏的类似问题,但没有一个为我解决了这个问题 现在,当我运行下面的宏时,它会创建一个新工作簿,其中只有一张工作表。我需要它在新工作簿中创建3张工作表,而不是1张。请帮忙 Sub RunSupplierOTD() ' ' RunSupplierOTD Macro ' ' ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 4

我在论坛上看到了关于添加宏的类似问题,但没有一个为我解决了这个问题

现在,当我运行下面的宏时,它会创建一个新工作簿,其中只有一张工作表。我需要它在新工作簿中创建3张工作表,而不是1张。请帮忙

Sub RunSupplierOTD()
'
' RunSupplierOTD Macro
'

'
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    Range("H49").Select
    ActiveCell.FormulaR1C1 = "Vendor Name"
    Range("I49").Select
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 7
    Range("A49:S49").Select
    Range("S49").Activate
    Selection.AutoFilter
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    ActiveSheet.Range("$A$49:$S$177").AutoFilter Field:=7, Criteria1:=Array("#" _
        , "12633", "79204", "79247", "79371", "79479", "79498", "79583", "IC3000"), Operator _
        :=xlFilterValues

End Sub

对于如何在Excel VBA中将工作表添加到工作簿的OPs问题,一个答案是使用以下代码:

Sheets.Add After:=工作表(Sheets.Count)

我想说的一件事是,在Excel中记录宏会产生大量不必要的代码。但它教会你的一件事是如何做某些事情。在问题的注释中,OP向开始使用Excel VBA的人提出了一个非常常见的问题,即如何选择对象,如图纸和单元格。有很多方法可以做到这一点,每种方法都使用不同的方法,比如“Application.Goto”

在下面的链接中可以找到一个很好的参考资料,我建议任何希望开始使用Excel VBA的人阅读此链接

以及录制宏和检查生成的代码


Hth,O

记录添加工作表并添加两次代码将是我的建议,然后我会将整个宏复制到现有宏中,还是只复制部分代码并将其粘贴到现有宏中?这是新的。我应该复制哪个部分,在哪里粘贴?子AddNewSheet()“”AddNewSheet宏“”工作表。添加后:=工作表(Sheets.Count)结束子位。。Sheets.Add After:=每次运行工作簿时,Sheets(Sheets.Count)都会将新的工作表添加到工作簿的末尾。因此,如果在宏末尾添加了两次,工作簿将多出两张工作表。顺便说一句,我不认为你的宏实际上创建了工作簿。事实上,我认为您可以删除“ActiveSheet.Range”($A$49:$S$177))上面的所有代码,这样做基本上还是一样的。是的,您是对的。这是错误的宏。但情况类似。你的建议奏效了。请把它贴出来,这样我可以给你评分。好的,现在它为我创建了sheet2。我可以让它默认返回到sheet1而不是像现在一样登录到sheet2吗