Tag: vba

excel VBA自动运行macros,每当一个单元格更改

有没有一种简单的方法让Excel自动执行macros,每当一个单元格更改? 有问题的单元格将在Worksheet("BigBoard").Range("D2") 我认为简单的谷歌调查被certificate是更复杂 – 每个样本涉及相交(不pipe是什么)或颜色格式或任何其他数目似乎是无关紧要的。

将多张图纸保存为.pdf

我有一个报告电子表格,可以从数据库中获取一些数据,并形成三张总结报告信息。 我想从命令行自动运行电子表格,并自动将所有三个报告表格保存为PDF文件。 起初,我以为我可以在工作表上有一个VBAmacros,通过一系列“打印为PDF”做到这一点,但是这需要一个中间的交互式对话框来指定输出文件名。 然后我发现我可以保存为pdf,而macros可以设置输出文件的名称。 然而,这会创build三个单独的文件,然后我必须稍后将它们合并到一起。 (单独保存为PDF只保存一张,其他保存模式似乎保存了整个工作簿。) 是的,以后有一些工具可以合并这三个文件,但是我想知道是否有一些简单的方法可以让Excel将多个工作表保存为一个pdf文件。 我现在打印一系列的东西,如: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, … 我可以做一些像(伪代码)一样的语句: ThisWorkbook.Sheets(1,2,3,4).ExportAsFixedFormat Type:=xlTypePDF, …

将整个工作表复制到Excel 2010中的新工作表

我发现了类似的问题,在一个工作簿中复制整个工作表并将其粘贴到另一个工作簿中,但是我只是简单地复制整个工作表并将其粘贴到新的工作表中 – 在同一个工作簿中。 我正在将2003 .xls文件转换为2010 .xlsm,而用于在工作表之间复制和粘贴的旧方法不会粘贴正确的行高。 我最初的解决方法是循环遍历每一行,并从我复制的工作表中获取行高,然后循环并插入工作表中我所粘贴的行高的值,但这种方法的问题是工作表包含的button会生成更改行编号的新行,并且工作表的格式使得所有行不能只是一个宽度。 我真的希望能够做的只是复制整个工作表并粘贴它。 以下是2003版本的代码: ThisWorkbook.Worksheets("Master").Cells.Copy newWorksheet.Paste 我很惊讶,转换为.xlsm导致这个现在打破。 任何build议或想法将是伟大的。

使用VBA对Excel中的填充行进行迭代

所以我正在尝试使用VBA在Excel电子表格中迭代工作表。 我想遍历每一行,然后通过每一列,尽pipe谷歌search,我实际上找不到一个直观的方式来做到这一点。 我假设一行中的第一个单元格必须填充,如果它不是,那么一定是结束。 我可以强制这一点 我目前的做法是遍历行,然后尝试获取第一个单元格的值,但我无法弄清楚。 我在这里和其他地方使用范围等问题,但没有什么能帮助我编写代码。 目前的做法是: Set sh = ActiveSheet RowCount = 0 For Each rw In sh.Rows 'If Row.Cells(1, 1).Value = "" Then Exit For RowCount = RowCount + 1 Next rw MsgBox (RowCount) 现在当我运行这个时,我得到了一个很大的数字,这是错误的,因为表只有大约25行。 我说第一行,因为它不工作。 我可以在For循环的第一行中更改什么,以便在find第一个单元格为空的行时正确地中断?

VBA从Web服务器导入UTF-8 CSV文件

我有一个存储在Web服务器上的UTF-8 CSV文件。 当我下载文件时,把它放在我的硬盘上,然后用macros(从macroslogging器)将它导入到Excel工作表中: Sub Macro2() Workbooks.OpenText Filename:= _ "C:/myFile.csv", Origin _ :=65001, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _ xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _ , Comma:=True, Space:=False, Other:=False End Sub 所有的字符(越南字符)都显示正确。 当我尝试使用相同的macros而不是给出文件的本地地址(“C:/myFile.csv”)时,我传递了该文件的URL(“ http://myserver.com/myFile.csv ”)CSV被正确地导入到我的Excel工作表中,但越南的字符不能正确显示。 我也尝试使用数据选项卡,但编码似乎被忽略的Excel: With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;C:/myFile.csv" _ , Destination:=Range("$A$1")) .Name = "myFile.csv" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen […]

获取Excel VB中的当前单元格

我有一个Excel / VB中的小脚本,我正在努力工作。 所有我想要做的是select一个dynamic范围的数据复制,但我似乎无法find任何帮助/代码如何获取网格数据(如A11)。 这里是我从macroslogging中select数据范围的代码: Range("D291:D380").Select 我希望我可以做Range(Current).Select或者什么,但是这是行不通的。 任何帮助表示赞赏。

独立于语言的方式来获取VBA Excel 2003中的“我的文档”文件夹

我需要一种独立于语言的方式来获取VBA Excel 2003中的“我的文档”文件夹。 我拥有的: Public Function MyDocsPath() As String MyDocsPath = Environ$("USERPROFILE") & "\My Documents\" End Function 因为该程序将在至less2个语言的Windows中使用,并且每个语言的“我的文档”名称都会更改。 有没有办法,或者我应该试图找出系统郎并变得具体?

取消excel行,重复数据

我有一个相当大的数据库存储在Microsoft Excel中,我必须尝试转换成有用的东西。 但是,我遇到的一个问题是一些数据被合并在一起(水平地在2s)。 例如; row 1: [ x ][ x ][ x ][ x ][ x ] row 2: [ x ][ x ][ oo ][ x ] row 3: [ oo ][ x ][ oo ] 其中x是单个单元格,o是合并在一起的 我想要做的是取消合并所有行(我可以用unmergebutton轻松完成操作),但是对于合并的单元格的位置,将数据复制到2个单元格中。 从; [[ Some Data ]] 至; [ Some Data ][ Some Data ] 谢谢! 任何帮助表示赞赏。

在Excel中生成SQL语句的技巧

您是否有任何技巧在Excel中为各种数据导入场景生成SQL语句(主要是INSERT)? 我真的厌倦了用像写公式 ="INSERT INTO Table (ID, Name) VALUES (" & C2 & ", '" & D2 & "')"

如何在Excel中获取范围的大小

使用VBA,是否有可能以像素或单位来获得给定范围的大小? (我不关心哪个单位,因为我只用它来与其他测量相关的单位)。 谢谢。