我有下面的代码,我希望它在其他25张工作簿中运行,而不是重复25次代码,对于每个工作表是否有办法让它循环? 有人可以协助吗? Sub DeleteEmptyRows() Dim ws As Worksheet Dim strSearch As String Dim lRow As Long strSearch = "ressort" Set ws = Sheets("01,02,03") With ws lRow = .Range("A" & .Rows.Count).End(xlUp).Row With .Range("A1:A" & lRow) .AutoFilter Field:=1, Criteria1:="=*" & strSearch & "*" .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete End With ActiveSheet.Range("$A$1:$P$65536").AutoFilter Field:=1 End With End Sub
在C#中,我知道我可以通过在类的主体中指定它来重载类的构造函数: public class MyClass() { public MyClass(String s) { … } } 这覆盖默认的构造函数(没有参数),强制类用参数s初始化。 我知道在VBA中,我可以用Private Sub Class_Initialize()来初始化我的类,但我不知道是否有办法强制我的类用参数初始化。 可以这样做吗?
我正在使用Microsoft Scripting Runtime(FSO)来parsing文件夹并生成其所有内容的列表,这些文件夹位于networking上,所产生的path最终长于260.我拥有的最小代码如下所示: Private Sub ProcessFolder(ByVal StrFolder As String) Dim Fl As File Dim Fldr As Folder Dim RootFldr As Folder Set RootFldr = FS.GetFolder(StrFolder) For Each Fl In RootFldr.Files Debug.Print Fl.Path Next For Each Fldr In RootFldr.SubFolders DoEvents ProcessFolder Fldr.Path Next Set RootFldr = nothing End sub 在一定的级别StrFolder长度变为259, Set RootFldr …文件夹行工作,但For Each Fl In […]
我有一个整数值的数组,并希望find一个简单的方法来计算其累积和( S = Data(1) + Data(2) + … + Data(x) )。 我已经创build了这个function: Function CumulativeSum(Data() As Integer, k As Integer) As Integer For entry = 1 To k CumulativeSum = CumulativeSum + Data(entry) Next entry End Function 它工作正常。 但是,我不知道是否有更好的方法(主要是没有使用任何额外的function,并且基本上只使用像Application.Sum这样的Excel函数)。 我在网上做了一个小search,但没有在这个基础上find任何东西。 我知道我不是要求更正任何代码,而只是要求一个替代scheme,而不是这个论坛的真正目的。 不过,我也怀疑答案可能很简单,所以…如果有人关心帮助我,我会非常感激! 如果您发现类似问题的答案,请与我分享链接,我将删除这个链接。 我非常抱歉,可能是我缺less明确的需求:我只是想find一个简单的方法来计算累积和,使用macros函数本身的简单函数,而不使用我创build的CumulativeSum函数或任何其他函数用户。
我需要打开一个完整的文件名我不知道的文件。 我知道文件名是类似的。 filename*esy 我知道这个文件在给定目录中只有一个出现。
我创build了一个macros,打开一个Excel工作簿,并执行一些操作,然后在最后closures文件。macros运行良好。 现在,当我在vba编辑器中打开我的VBA项目浏览器。 它显示了即使被closures但已被macros打开的文件列表。 我如何从项目浏览器窗口中删除它们? 为什么它仍然显示优秀的工作簿,已经closures? 有无论如何修复它或限制?
更新:已解决 的问题我的同事在Workbook_BeforeSave()期间更改单元格,而不禁用事件,因此触发了Worksheet_Change() 。 是的,愚蠢的,但至less这是我们的错,不是Excel的 我注意到,每当我在Excel中按Ctrl + S时, Worksheet_Change()在Workbook_BeforeSave()之前被触发。 是否有可能抑制这种行为使用VBA代码,但没有抑制所有事件(即没有Application.EnableEvents = false )? 无论我在做什么,都会发生这种情况。 我已经阅读过与ComboBoxes有类似问题的人,但是我没有编辑ComboBoxes,但是Worksheet_Change()始终在保存之前触发。 有任何想法吗? 我只想弄清楚当保存文档时如何绕过Worksheet_Change()一些代码,因为只有在用户实际更改某些内容(而不是保存工作簿)时应该执行该代码。 储蓄绝不会改变…
在Excel中,我试图将文本从一个单元格复制到另一个单元格中的另一个单元格。 源单元格包含格式化的文本(粗体,下划线,不同的颜色) 。 但是,当我使用VBA将文本复制到其他单元格时,格式将丢失。 我知道这是因为excel只复制文本值。 有没有一种方法可以从单元格中读取HTML文本 (而不是纯文本) ? 我GOOGLE了这一点,并没有得到任何答案。 我知道,如果我们使用复制和粘贴方法,我们可以复制格式。 例如 Range("F10").Select Selection.Copy Range("I10").Select ActiveSheet.Paste 但我想这样做没有复制和粘贴,因为我的目的地是一个合并单元格,而不是我的源单元格大小相同。 在Excel VBA中有没有这样的选项? 编辑:我能够解决它与下面的代码。 Range("I11").Value = Range("I10").Value For i = 1 To Range("I10").Characters.Count Range("I11").Characters(i, 1).Font.Bold = Range("I10").Characters(i, 1).Font.Bold Range("I11").Characters(i, 1).Font.Color = Range("I10").Characters(i, 1).Font.Color Range("I11").Characters(i, 1).Font.Italic = Range("I10").Characters(i, 1).Font.Italic Range("I11").Characters(i, 1).Font.Underline = Range("I10").Characters(i, 1).Font.Underline Range("I11").Characters(i, 1).Font.FontStyle = Range("I10").Characters(i, 1).Font.FontStyle Next i
我使用下面的代码从XML到Excel获取数据。 但问题是,结果在一个新的工作簿“ Book1 ”中打开。 但我想在具有此macros的相同Excel中的特定工作表中获得结果。 请注意,我不想在代码中创build模式,因为所有XML的模式都会改变。 下面提到的代码不需要指定模式。 它可以将结果转储到具有正确列名称的新Excel表格中。 那么,请让我知道如何在同一个工作簿中的sheet2中得到结果? Sub ImportXMLtoList() Dim strTargetFile As String Application.DisplayAlerts = False strTargetFile = "C:\example.xml" Workbooks.OpenXML Filename:=strTargetFile, LoadOption:=xlXmlLoadImportToList Application.DisplayAlerts = True End Sub
在excel中考虑下面的vbamacros Sub foo() Dim aRng As Range: Set aRng = ActiveSheet.Range("A1:J1") Dim bRng As Range: Set bRng = ActiveSheet.Range("A4:J4") Dim cRng As Range: Set cRng = ActiveSheet.Range("A10:J10") Dim uRng As Range: Set uRng = Union(aRng, bRng, cRng) uRng.Style = "Good" uRng.Cells(2, 1).Style = "Bad" End sub 结果是:行"A1:J1", "A4:J4", "A10:J10" 良好 ,单元格"A2" 不好 。 我预计电池"A4"是坏的 。 […]