Questions tagged «macros»

计算机科学中的宏是一种规则或模式,它指定如何根据定义的规则和过程将特定的输入序列映射到特定的输出序列。如果问题与Microsoft Office产品有关,请考虑使用[vba]标记代替此标记。这可以帮助人们更有效地回答,过滤问题。

1
如何编写在另一个工作表中查找单元格中列标题的VBA代码,然后返回相应的列?[关闭]
因此,我有一个完整的客户电子表格,其中客户作为列,产品作为行,交叉单元格指示每个客户购买了多少。在另一个工作表中,我希望能够运行一个宏,该宏将提取所有产品并列出仅为一个客户购买的数量。 我还有另一个宏,用于删除空白行,仅保留客户购买的产品。

1
修改Excel宏以引用文本列表,而不是硬代码
我正在尝试获取有关我一直在努力的Excel宏的最后一步的帮助。我已经设置了一个宏,该宏将从两个不同的工作簿中获取工作表中的数据,并将其粘贴到第三个工作簿中。 第三本工作簿是归因于15个不同雇员的15个文件之一,每个文件都有不同的名称和编号。 我设置了宏以一次打开和更新15个工作簿中的每个工作簿,然后保存并关闭它们,但是现在我需要容纳对15个工作簿的更改(对于员工辞职或新雇员)被雇佣)。 以我编写宏的方式,我必须手动进入代码并将引用更改为15名员工的姓名和ID号。 有没有一种设置它的方法,以便它可以从列表中读取名称和编号(保存在第四个工作簿中),这样我就可以根据需要简单地编辑该列表,并且宏可以保持不变并在循环上运行?我知道我每次必须进行更改时都可以使用“替换”,但是从单个可编辑列表中进行操作仍然会更容易。谢谢。 在下面的示例中,引用了名为Melvin Smith ID#2878的员工: ‘ Using the AutoFilter on the workbook called NEW DD Windows("NEW DD.xlsx").Activate ActiveSheet.Range("$H$1:$H$3055").AutoFilter Field:=8, Criteria1:=”=*Melvin Smith*”, _ Operator:=xlAnd Selection.Copy ‘ Going back to Melvin’s workbook named 2878 Windows("2878.xlsx").Activate Sheets("D dd N").Select Range("A1").Select ActiveSheet.Paste

1
VBA代码未“保留”此工作表参数
我想从另一工作簿中检索值的一列,并在当前工作簿中填充一个选项卡。最终,这将进入我编写的效果更好的更长的模块。我只是想让这一步自动化。下面是代码。 我得到一个标超出范围在贴线错误。似乎我的语句设置currentWb为ThisWorkbook不起作用,因为要从中复制的第二个工作簿仍处于打开状态,选择并复制了范围,只是在等待目标粘贴。我已经搜索并尝试了所有我能想到的。 Sub OpenWorkbookToPullData() Dim sUserInput As String sUserInput = InputBox("Enter Account Folder Name:", "Folder Name") Dim path As String path = "C:\users\" & Environ$("username") & "\OneDrive\Documents\Brightree\" & sUserInput & "\Financial Scorecard\Exceptions.xlsm" Dim currentWb As Workbook Set currentWb = ThisWorkbook Dim exceptionWb As Workbook Set exceptionWb = Workbooks.Open(path) Dim exceptionWs …


1
从另一个工作簿中调用一个函数
我在一个工作表中有一堆数据,我试图根据几列中的值保存到单个工作簿中。我采用的方法(无论好坏!)是将相关的工作表(和宏)复制到新的工作簿中,并用适当的名称保存(例如“ temp.xlsx”),然后清理其中的数据。通过删除不相关的行(称为deleteInfo的函数)来创建新工作簿。根据公司政策,所有这些都必须在不更改原始工作簿的情况下完成。 我可以毫无问题地复制内容,但是那时在新工作簿中调用宏时遇到了严重的问题。 我努力了: Application.Run "'temp.xlsx'!deleteInfo" ActiveWorkbook.Application.Run deleteInfo Application.Run ("'C:\user\.....\temp.xlsx'!deleteInfo") 但没有一个奏效。 任何帮助深表感谢。

2
vim映射可以触发Autohotkey宏吗?
我想使用vim映射触发Autohotkey宏,这可能吗?例如,要在vim中创建正常模式的vim映射以输入CTRL-J,然后使用该映射来触发Autohotkey。 在vim中: :nnoremap ,w <ctrl-j> AutoHotkey的 ^j:: do something 当我这样做时,CTRL-J在键盘上进行物理键入会成功触发Autohotkey宏,但vim映射不会。

1
当我单击按钮时,宏可按顺序从列中填充单元格
我很难解决这个问题。 这是我的布局: 如您所见,我有2个按钮。 我希望每个按钮都可以执行以下操作: 每次单击YES,它将Y在特定范围的单元格中插入一个。 如果YES再次单击,它将自动Y在同一列中上一个单元格的下一个单元格中插入一个。 如果单击NO,它也将继续在列中向下插入N。 如何使按钮的输出始终使用下一个空闲单元?

1
Word 2013:对以下类型的单词禁用拼写检查,然后在之后重新启用
我有2个宏,一个宏切换到Courier New,另一个宏切换到Calibri。我使用这些代码在常规段落之间以及常规段落的一部分中编写了几行代码。字体更改有助于区分它们,但是拼写检查仍会突显代码段为不正确。 有没有一种方法可以暂时禁用拼写检查,键入一些字符,然后重新启用拼写检查,但从检查中排除那些键入的字符? 例如段落 楚格祖格 {enter code format macro} dabu {exit code format macro} 楚格祖格 例如内联 楚格祖{enter code format} dabu {exit code format}格 在上述实例中,dabu应该不加下划线作为错误拼写的单词。 单词:禁用段落的拼写检查器?相似,但是它涵盖了一种禁用突出显示部分的拼写检查的方法。


1
如何将宏推广到任何行
下面的Excel宏被编写为在Excel的特定行(第2行)上运行。我希望能够将它应用到我选择的任何行而不仅仅是第2行。有谁知道如何适应它?我有这个为我写的,不知道任何VBA编码。 Sub test() Set ie = CreateObject("internetexplorer.application") ie.Navigate "http://www.fedex.com/us/" While ie.Busy Or ie.ReadyState <> 4: DoEvents: Wend ie.Visible = 1 Set doc = ie.document On Error Resume Next With doc .getElementsByname("username").Item(0).Value = "Username" .getElementsByname("password").Item(0).Focus .getElementsByname("password").Item(0).Value = "Password" .getElementsByname("startpage").Item(0).selectedindex = 1 .getElementsByname("login").Item(0).Click While ie.Busy Or ie.ReadyState <> 4: DoEvents: Wend Application.Wait …
-1 vba  macros 

1
Excel宏打印3页相同的数字,然后递增
我有一张excel表来打印一组3页,我用它来制作时间表。我需要某种宏,它可以在每三页打印后更改数字。所以,前三张是0001,接下来是三张0002接下来的三张0003,等等。 如果可能的话,我需要能够从我离开的地方开始。这是我到目前为止所尝试的: Sub PrintCopies_ActiveSheet() Dim CopiesCount As Long Dim copynumber As Long CopiesCount = Application.InputBox("How many copies do you want?", Type:=1) 'Now the program wants you to input how many pages you like to print. 'You can input 100 here. For copynumber = 1 To CopiesCount With ActiveSheet .Range("E1").Value = …

1
将多个Excel工作表转换为.csv
我发现这个宏用于将工作簿中的多个excel工作表转换为单个命名的.csv文件,但不知道如何从转换的文件名中删除工作簿名称。我确信这很简单,但我对VBA一无所知。 Sub exportcsv() Dim ws As Worksheet Dim path As String path = ActiveWorkbook.path & "\" & Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1) For Each ws In Worksheets ws.Copy ActiveWorkbook.SaveAs Filename:=path & "_" & ws.Name & ".csv", leFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Close False Next End Sub

1
如何使此宏捕获最新数据?
我记录了一个宏及其工作原理。问题在于它捕获了绝对单元而不是动态单元。让我解释。 我有一个将灯具复制到的估算页面。在其中一个单元格中,它将是A或B或C ...等。当我记录宏时,当我在A选项卡上时,它将捕获绝对数据(如A),但是当我加载了B选项卡,宏放入了“ A”。因此例程如下。我将大胆地展现我所需要的动态。 Sub FixColumns() ' ' FixColumns Macro ' ' Range("A1").Select ActiveCell.Offset(1, 15).Range("A1").Select ActiveCell.FormulaR1C1 = "=Estimating1!R[3]C[-10]" ActiveCell.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False ActiveCell.FormulaR1C1 = **"C"** ActiveCell.Select Selection.AutoFill Destination:=ActiveCell.Range("A1:A38"), Type:= _ xlFillDefault ActiveCell.Range("A1:A38").Select ActiveWindow.SmallScroll Down:=-45 ActiveCell.Offset(0, -14).Range("A1").Select ActiveCell.FormulaR1C1 = "=Estimating1!R[8]C[3]" ActiveCell.Select Selection.Copy Selection.PasteSpecial …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.