Tag: excel vba

创build如果下一个循环与多个variables(工作代码)

我有一张表,我用它来dynamic调整图表。 为此,我使用下面的代码,按照预期工作,但是由于我是VBA新手,所以在创build循环时遇到困难,因此我不必列出每个系列/类别。 总共有8个系列和17个类别。 – 系列filter(真/假)列在“ B27:B34 ”中, – 类别filter在“ C25:S25 ”中列出, 所有的工作表(3)。 有人可以帮我弄这个吗 ? 我的代码(缩写): Sub UpdateChart() Dim varSeries1 As String Dim varSeries2 As String Dim varSeries3 As String ' … Dim varCategory1 As String Dim varCategory2 As String Dim varCategory3 As String ' … varSeries1 = Worksheets(3).Cells(27, 1).Value varSeries2 = Worksheets(3).Cells(28, 1).Value varSeries3 = […]

如何将包含超过15位数字限制的单元格转换为实际值

我没有意识到所有版本的Excel允许的最大数量(最长15个数字)是有限的。 我已经通过手动input大量值来发现错误,只是发现在第一个15位数字被零影响之后,我失去了准确性。 这几乎是一个3小时的工作,看起来像我将不得不重复,除非有人知道一个办法来帮助我。 从那以后,我保存并退出了电子表格。 后来客户回到我这里说,我给他们的数字是不准确的,因为他们只有15位数的准确性。 然后,我在网上研究了这一点,发现我应该在超过15个字符的数字复制之前将文本格式设置为文本格式。 有谁知道是否有办法让数字回来,或者我是否会重新生成电子表格?

获取目录文件夹名称和只有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