Tag: vba

获取目录文件夹名称和只有Upto 2子文件夹名称

我想从目录中获取文件夹的名称,并从该目录中获取任何子文件夹的名称。 所以它是主目录 – >文件夹名称 – > SubFolder1 – > SubFolder2 下面的代码获取所有的文件夹和子文件夹名称。我从这里得到的代码。 任何想法我怎么能限制只有两个子文件夹? Option Explicit Sub FolderNames() Application.ScreenUpdating = False Dim xPath As String Dim xWs As Worksheet Dim fso As Object, j As Long, folder1 As Object With Application.FileDialog(msoFileDialogFolderPicker) .Title = "Choose the folder" .Show End With On Error Resume Next xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & […]

将多个选定的工作表保存为一个PDF

我试图将多个选定的工作表保存到一个PDF中。 relativePath = wb.Path & "\" & sheetName & dateToday wb.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select ***This is the code in question***.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=relativePath, _ Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=True 我已经尝试了两种方法来修改“这是有问题的代码” 我用“select” 结果:空白文档以空格forms保存为PDF 我已经使用“ActveSheet” 结果:文档仅以第一张纸张的forms保存为PDF 我已经使用'wb'(这是我目前的工作手册,只是为了testing它的工作原理) 结果:正如预期的那样,文档被保存为PDF格式,其中包含所有表格,主要是testingPDFfunction是否正常工作 为了澄清,我希望的结果是sheet1,sheet2和sheet3被保存到相同的PDF(我有一堆在我的工作簿中的其他工作表,我会replace静态编码表名与数组,当我得到它的工作) 我已经从stackoverflow的答案得到解决scheme1和2,但都不为我工作的地方为他人工作。 任何人都可以请一些解决scheme或至less确定为什么这两件事情发生?

find文字并复制到另一张纸上

我有一个日志文件,我已经导入到Excel中,并且我已经根据标准过滤了Col C。 现在我想通过Col Esearch“TRUE”。 对于“TRUE”的每个实例,我想selectCol D,E上面的行,直到在Col E中find空单元格,将它们复制并粘贴到同一工作簿中的新工作表中。 根据上面的图片,我想复制工作表1中的第9行到第1行,并跳过第20行到第10行(因为列E有FALSE)并复制工作表2中的行31到21。

在代码中设置一些表单时出错,但与其他表单不一致

我有一个自动化我的公司的发票的macros。 有时我们有forms发票,这意味着我们删除了三个被操纵的发票中的两个(客户,所有者和增值税)。 因此,在每个代码运行之前,我必须检查是否存在表单。 我碰到的问题是,当我设置一些要检查的工作表时,它会给我一个运行时错误424 。 在下面的代码中,这是第二次,TVA工作表检查错误发生的地方( If TVASheet Is Nothing Then )。 请注意,我有几乎完全相同的代码,除了检查ClientSheet。 'If the current payment is the only payment then we add to the TVA invoice 'that the rest is due 'on the date the balance of rental is due If (Range("F3") <> "" And Range("G3") = "" And Range("H3") = "") Then […]

如何在Excel工作簿中压缩VBA项目

我正在寻找一种方法来压缩Excel工作簿中的VBA项目。 我最近发现,当我用WinZip打开工作簿时,我的一本工作簿中的VBA项目增长了超过60 Mb。 压缩的工作簿(.xlsm)超过了我的电子邮件提供商为电子邮件附件设置的10Mb限制。 我必须采取行动或find另一种分配方式。 我能够将大小从10Mb以上减less到2Mb以下,但这是一个很大的工作,我不确定是否可以自动化。 这是我遵循的程序: 导出所有工作表后面的代码,ThisWorkbook,Forms,CodeModules和ClassModules。 将工作簿保存为.xlsx(所有代码已被删除) 重新打开工作簿并保存为.xlsm 再次导入所有模块并通过表单后面的代码。 现在我知道VBA项目在没有Excel的选项的情况下增长,只需​​按下一个button就可以压缩它,至less不是我所知道的一个选项。 我想创build一些工具来做到这一点,每次我分发文件。 任何想法如何做到这一点?

点击该系列,从图表中获取系列名称

我想通过点击它从特定的图表获取时间序列名称。 我有这样的东西: Sub CallSerie() CallingShapeName = ActiveSheet.Shapes(Application.Caller).Name MsgBox CallingShapeName End Sub 但是这会抛出图表名称,而不是系列名称。

麻烦切割到目的地

尝试简单地从一个范围切割,粘贴到另一个整齐,而不是使用粘贴等。这就是我所拥有的: Sub Format_Excel_Confirm(clientName As String, newWB As Workbook) lRow = ActiveWorkbook.Sheets(1).Range("A60000").End(xlUp).Row Range("B2", "B" & lRow).Cut(Range("AF2", "AF" & lRow)) 并且由于以下原因而失败: “范围类的切割方法失败”错误。

将string转换为ASCII码

我正在尝试使用Excel VBA编写一个函数来将string转换为其各自的ASCII编号。 例如: "ABCD" => "65666768" 我已经写了这个代码,但没有做转换: Public Function asciien(s As String) As String ' Returns the string to its respective ascii numbers Dim i As Integer For i = 1 To Len(s) asciien = asciien & CStr(Asc(Mid(s, x, 1))) Next i End Function

运行时错误“483”“对象不支持此属性或方法”

我试图为特定的工作表有一个自定义sorting表,但我得到运行时错误“483”“对象不支持此属性或方法”。 我将工作表名称和自定义列表顺序作为来自用户的stringinput。 Option Explicit Sub SortRiskArea() Dim wk As Worksheet Dim Tb, Rb Dim shtName As String shtName = InputBox(Prompt:="Enter the Worksheet Name that you want to sort." & vbNewLine & " Ex: Risk Register ", Title:="Hello", Default:="Risk Register") shtName = Trim(shtName) Dim strName As String strName = InputBox(Prompt:="Enter the Sort Order for Risk Area" […]

在sorting时陷入运行模式

我试图通过stringsby中的文本将sheet 2上的数据sorting到sheet 9 。 我认为从下面的代码逻辑很简单。 但是下面的代码给了 运行时错误1004; 为行wk.Rows(j).EntireRow.Selectselect范围类失败的方法 更新1: 我现在没有得到这个错误,但是它在很长一段时间里一直停留在[running]模式,我不得不中断代码的执行。 我正在尝试实现下面的I / O逻辑。 我认为我的代码应该可以工作,但要么需要很长的时间,要么陷入无限循环。 你能帮我吗 input: col B Commercial Tech Operation Commercial Commercial . . . . 输出: col B Commercial Commercial Commercial Tech Operation . . . 码 Option Explicit Sub SortByCommercial() Dim wk As Worksheet Dim sby, FinalRow, i, j, p Dim WsCount […]