我正在学习如何使用Excelmacros,我发现这个代码: Dim fd As Office.FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .AllowMultiSelect = False .Title = "Please select the file to kill his non colored cells" .Filters.Add "Excel", "*.xls" .Filters.Add "All", "*.*" If .Show = True Then txtFileName = .SelectedItems(1) End If End With 这段代码打开FileDialog。 如何打开选定的Excel文件而不覆盖以前打开的文件?
这是我的代码: Sub isdofsodjisf48023jroi23f984444444jiodfiosj12348023jroi23f98() Dim colFiles As New Collection RecursiveDir colFiles, "C:\Documents and Settings\Alex Gordon\Desktop\testing\files\", "*.xls", True Dim vFile As Variant For Each vFile In colFiles Call writeincells(vFile) Next vFile End Sub Public Function RecursiveDir(colFiles As Collection, _ strFolder As String, _ strFileSpec As String, _ bIncludeSubfolders As Boolean) Dim strTemp As String Dim colFolders As […]
最后,我想将单元移动到发生最后一个错误的位置。 编辑:忘了说,我正在使用Excel 2003。
我正在用一个特定的公式创build一小段VBA代码,但是它有几个if语句,其中一个发起了一个双行string(用vbNewLine )问题是我看不到文本。 所以我想把它包装起来,但是每次我设置ActiveCell.WrapText = True ,都没有任何反应。 我检查了一个消息框。 我将WrapText设置为True,我用MessageBox返回属性值来确认,而且它仍然是False。 我被告知也使用ActiveCell.Rows.AutoFit ,但如果文本没有被包装, AutoFit什么也不做。 任何想法,我可能在这里做错了吗?
我对MS Excel和VBA Macro是全新的。 我想知道如何格式化单元格,或使用macrosVB在电子表格上进行全面控制。 我在这里有一个非常简单的代码来说明我想知道的。 macro_format_test.xlsm : Private Sub Worksheet_Activate() Me.Unprotect Me.Cells.ClearContents Dim ws As Worksheet Set ws = Worksheets("Sheet1") ws.Cells(1, 1) = "ID" ws.Cells(1, 2) = "Name" ws.Cells(1, 3) = "Address" Me.Protect End Sub 在代码中… ws.Cells(1, 1) = "ID" ws.Cells(1, 2) = "Name" ws.Cells(1, 3) = "Address" 我希望那些显得大胆,stream利,并集中。 我也想用代码设置他的列宽。 我该怎么做? 请帮忙。 你也可以给我一些关于这个的参考,因为每次我尝试谷歌所有我可以看到是如何添加UserForm,我现在不需要。 提前致谢。
我试图捕捉与VBA的一些错误,我发现这个教程 ,我想捕捉错误使用GoTo方法在下面的例子中: Sub mySub On Error GoTo myHandler: Workbooks.Open("myWorkbook") ' ' Some Code ' myHandler: MsgBox "EROOR !" End Sub 问题是,即使没有错误, myHandler部分总是被执行! 我发现这个讨论,但提出的答案并不能解决问题 我试图添加一个Exit Sub语句,解释如下: Sub mySub On Error GoTo myHandler: Workbooks.Open("myWorkbook") Exit Sub ' ' Some Code ' myHandler: MsgBox "EROOR !" End Sub 在这种情况下,即使没有错误,也会退出该方法。 我也试过: Sub mySub On Error GoTo myHandler: Workbooks.Open("myWorkbook") ' […]
我正在写VBA代码来填充三个不同的combobox与相同的数据。 我只是想知道是否有一个更有效的方式来写,然后我现在在做什么? ' Create fac1 cbo For Each c_fac In ws_misc.Range("fac") With Me.cbo_fac1 .AddItem c_fac.Value .List(.ListCount – 1, 1) = c_fac.Offset(0, 1).Value End With Next c_fac ' Create fac2 cbo For Each c_fac In ws_misc.Range("fac") With Me.cbo_fac2 .AddItem c_fac.Value .List(.ListCount – 1, 1) = c_fac.Offset(0, 1).Value End With Next c_fac ' Create fac3 cbo For […]
我周围search,我知道如何从一个VBmacros,从Personal.xlsb调用一个函数,但我怎样才能调用函数在新的工作簿中使用? 这是我的function,保存在我的Personal.xlsb “Module1”中: Public Function GetColumnLetter(colNum As Integer) As String Dim d As Integer Dim m As Integer Dim name As String d = colNum name = "" Do While (d > 0) m = (d – 1) Mod 26 name = Chr(65 + m) + name d = Int((d – m) / 26) Loop […]
我使用这个在macros中find我的工作表中的东西: Selection.Find(What:=email, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate 我怎么知道它是否发现了什么?
没错,在我们谈起合并单元格之前,我也讨厌他们,但是我仍然要处理它们。 我现在或将来都无法改变这一切。 尽我所能;) 说我有一些合并单元格,我需要确定它跨越的单元格的数量。 说A1:A4合并,然后我需要有合并单元格的数量,4,返回。 有什么办法可以做到这一点?