Tag: macros

如何在我的macros中更改我的工作表数组引用

我有以下代码,我logging了自己在Excel中。 基本上我想复制相同的公式IF(A1="Facility Variance Report",MID(A2,FIND("_",A2)+1,2)&"-"&TRIM((MID(A2,FIND(":",A2)+2,23)))&"-Var",MID(A2,FIND("_",A2)+1,2)&"-"&TRIM((MID(A2,FIND(":",A2)+2,23)))&"-Inc")除了前三个之外的每个工作表中。 我的问题是,无论如何,我可以缩短从第三张工作表开始的数组引用,而不是每张纸之后的数组引用。 我问的原因是因为没有办法确定工作表名称每次都会以相同的方式。 Sub Macro1() Sheets("OH-Knox Community Hospital-Var ").Select ActiveWindow.ScrollWorkbookTabs Position:=xlLast Sheets(Array("OH-Knox Community Hospital-Var ", "OH-Knox Community Hospital-Inc" _ , "WV-Bluefield Regional Medic-Var", "WV-Bluefield Regional Medical C", _ "FL-Wuesthoff Medical Center-Var", "FL-Wuesthoff Medical Center – R", _ "NC-Johnston Medical Center-Var", "NC-Johnston Medical Center-Inc", _ "LA-Ochsner Medical Center –Var", "=MID(A2,FIND(""_"",A2)+1,2)&""-""&I", _ "WV-Plateau Medical […]

错误800A0400为ActiveSheet.Range(“$ A $ 1:$ CV $ 749”)。RemoveDuplicates Columns:= 2,Header:= xlNo

Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set Excel2= objExcel.Workbooks.Open("D:\DBG\Temp.xlsm") Excel2.Worksheets("output").Activate ActiveSheet.Range("$A$1:$CV$749").RemoveDuplicates Columns:=2, Header:=xlNo 如果我尝试执行上面的代码,我得到错误。提前感谢 Line 35 Char 60 Error Expected statement Code 800A0400 我该如何解决这个问题

使用VBA在Excel工作簿中的第二个工作表上运行循环

我试图运行一个Do While循环来连接Sheet2上的Sheet2的三列上我的工作簿,我想我是如何引用我的第二个工作表正在跳闸,因为在第一张表上运行此代码给了我积极的结果, 任何帮助将非常感激。 ActiveWorkbook.Worksheets("Sheet2").Activate Dim noSep As String noSep = "" Cells(1, 3) = col1 Cells(1, 30) = col2 Cells(1, 32) = col3 Cells(1, 63) = colconcatenated x = 2 Do While Worksheets("Sheet2").Cells(x, col1) <> "" Cells(x, coloncatenated) = Cells(x, col1) & noSep & Cells(x, col2) & noSep & Cells(x, col3) x = x + […]

Excel过滤/隐藏使用dynamicmacros的列

我有一个电子表格,其数量非常庞大,数以百计的列或数千行,我有能力checkbox以确定显示的列。 问题是我现在想要根据单元格的值将列分组到每列的顶部(第10行)。 这将允许类别是dynamic的,并且将允许项目从一个类别改变到另一个,并且基于该类别的checkbox状态被隐藏或显示。 我目前在macros中的代码允许checkbox在每个团队中隐藏和可见之间切换。 他们目前分组为20,我想要消除20的静态分组,并用第10行的单元格包含类别的列数组replace(在本例中,目前为“Team 1”。 Sub Team1() Set target = Range("B1") If target.Value = "TRUE" Or target.Value = "True" Then ActiveSheet.Columns("F:Y").EntireColumn.Hidden = False ElseIf target.Value = "FALSE" Or target.Value = "False" Then ActiveSheet.Columns("F:Y").EntireColumn.Hidden = True End If End Sub

Excel 2013比较不同行上的date使用macros“运行时错误13,types不匹配”

我是vba中的新人,目前我正在工作,而我的老板需要我创build一个excelmacros。 macrosfunction是: 比较数据是date,开始date和结束date。 自动提醒用户员工合同过期时打开工作表。 如果员工合同过时,突出员工的细节。 所以现在我被卡住,直到“运行时错误13,types不匹配”。 下面是我的编码部分,不匹配是>>> <<<。 Private Sub Worksheet_Activate() Dim rngA As Range Dim rngD As Range With Worksheets("Sheet1") For Each rngA In .Range(.Range("A1"), .Cells(.Rows.Count, "A").End(xlUp)) For Each rngD In .Range(.Range("D1"), .Cells(.Rows.Count, "D").End(xlUp)) >>> If rngA.Value("A1:xlUp") >= rngD.Value("D1:xlUp") Then <<< MsgBox "Sheet 1 Row " & rngA.Row & " expiring" rngC.Interior.ColorIndex = 3 […]

使用macros列复制和粘贴

我不熟悉VBA或macros,我经常使用微软的Excel。 写这个更好的方法是什么? 我想要的是复制列B和粘贴列B右下一列和其他列。 例如: 在sheet2上,我要B列在B列上 在sheet3上,我希望B列在C列并清除B列 在工作表4上,我希望B列在E列上并清除B列 在表5中,我想B列在F列和清除B列 。 。 。 。 在表26,我想B列在Z列和清除列B 在表27上,我想B列在AA列和清楚的B列 等等 我用“loggingmacros”来想出这个,但我想用VBA编程。 什么是复制/剪切粘贴列的最佳方法? Sheets(2).Select Columns("B:B").Select Sheets(3).Select Columns("B:B").Select Selection.Copy Columns("C:C").Select ActiveSheet.Paste Application.CutCopyMode = False Columns("B:B").Select Selection.ClearContents Sheets(4).Select Columns("B:B").Select Selection.Copy Columns("D:D").Select ActiveSheet.Paste Application.CutCopyMode = False Columns("B:B").Select Selection.ClearContents Sheets(5).Select Columns("B:B").Select Selection.Copy Columns("E:E").Select ActiveSheet.Paste Application.CutCopyMode = False Columns("B:B").Select Selection.ClearContents Sheets(6).Select Columns("B:B").Select Selection.Copy Columns("F:F").Select ActiveSheet.Paste Application.CutCopyMode […]

旋转值的macros

我目前正在制作一个包含多列的电子表格,在每一列中都有第10,11和12行,表示您是否是第1,2,3号。 更具体地说,看下面的图片。 我需要构build一个macros,每次使用它的值都会改变,所以A列中的单元格将变为A10 = 1,A11和A12 =空白,B列B12 = 3,B10和B12 =空白,C列到C11 = 2,C10和C12 =空白)等。macros将运行,直到列AC到达。 有没有办法做到这一点? 我必须每天更改这些值,这样对于多列可能会变得非常繁琐。 亲切的问候,雷神

Excel VBA中删除特定macros的命令是什么?

我有一个Excelmacros模板。 我运行一个macros,它将新的电子表格保存为xlsx。 我只是想知道是否有一个简单的VBA命令,只是按名称删除macros。 我已经研究了很多,基本上有两个不合适的答案。 首先是不要在我保存的工作簿中存在macros,而只是将macros从一个工作簿运行到另一个工作簿。 (我不想这样做,原因很简单,但简单是主要原因。) 第二个是从工作簿剥离所有VBA和连接的VBA脚本。 (我不需要这么做,我宁愿删除我所拥有的一个macros。) 所以,我正在寻找的是这样的: Delete.Macro("Import") '该命令删除名为“Import”的工作簿中的macros。

Excel VBA – 导入多个xlsx工作表并追加到主工作簿表

我正在尝试将多个XLSX / XLS工作表导入到我的Master Workbook的“临时”工作表中,每个工作簿内容都应该在最后一项之后添加。 这只适用于一个文件,但我似乎无法找出所有选定的工作簿循环背后的逻辑。 另外,考虑到性能和速度,在select之后打开所有select的工作簿是明智的,还是应该在导入前一个文件之后打开它们呢? 将不胜感激您的亲切帮助。 编辑:为了更精确一点,脚本的问题是我应该通过所有打开的工作簿看的部分。 build议任何人? For Each Workbooks In lngCount With Workbooks .Sheets(1).Cells.Copy Destination:=MasterWB.Sheets("temp").Range("A65536").End(xlUp).Offset(1, 0) .Close False End With Next 完整的VBA代码: Sub import_XLS() Dim wb As Workbook Dim lngCount As Long ' speed up by turning screenupdating off Application.ScreenUpdating = False ' set workbooks Set MasterWB = ActiveWorkbook With ActiveWorkbook.Sheets("temp") .Visible […]

在公式中增加单元格地址2

我有这样一个公式: =CONCATENATE("some text";D20;"sometext too ";E20) 我想通过拖动单元格的angular落自动填充这些,但如果我这样做,我得到这个: =CONCATENATE("some text";D20;"sometext too ";E20) =CONCATENATE("some text";D21;"sometext too ";E21) =CONCATENATE("some text";D22;"sometext too ";E22) … 但我喜欢看到: =CONCATENATE("some text";D20;"sometext too ";E20) =CONCATENATE("some text";D22;"sometext too ";E22) =CONCATENATE("some text";D24;"sometext too ";E24) … 任何解决scheme? 我使用了Google几个小时,但没有解决scheme。 VBAmacros解决scheme也可以接受