Tag: excel vba

如何遍历Excel VBA或VSTO 2005中的所有单元格

我需要简单地通过Excel电子表格中的所有单元格,并检查单元格中的值。 单元格可能包含文本,数字或空白。 我不是很熟悉/舒适地使用“范围”的概念。 因此,任何示例代码将不胜感激。 (我曾尝试谷歌,但我发现的代码片段并没有完全做我所需要的) 谢谢。

在范围内的每个单元格周围的边界

我正在试图创build一个简单的函数,将在一定范围内的每个单元格周围添加边框。 使用精彩的录音会产生很多无用的代码。 下面的代码将显示一个“表”的数据,在这个范围的每个单元格周围,我想添加一个边框。 在线我一直无法find一个简单或明确的答案。 所有的帮助非常感谢! Set DT = Sheets("DATA") endRow = DT.Range("F" & Rows.Count).End(xlUp).Row result = 3 For I = 2 To endRow If DT.Cells(I, 6).Value = Range("B1").Value Then Range("A" & result) = DT.Cells(I, 6).Value Range("B" & result) = DT.Cells(I, 1).Value Range("C" & result) = DT.Cells(I, 24).Value Range("D" & result) = DT.Cells(I, 37).Value Range("E" & […]

使用VBAmacros在工作簿中的Excel表上执行SQL查询

我正在试图做一个Excelmacros将给我在Excel中的以下function: =SQL("SELECT heading_1 FROM Table1 WHERE heading_2='foo'") 允许我使用SQL查询在我的工作簿表中search(甚至插入)数据。 这是我迄今为止所做的: Sub SQL() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset strFile = ThisWorkbook.FullName strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile _ & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";" Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") cn.Open strCon strSQL = "SELECT * FROM [Sheet1$A1:G3]" rs.Open strSQL, cn Debug.Print rs.GetString End […]

对于每个循环的反向顺序

关于VB最强大的function之一是能够循环通过集合中的对象而不涉及索引 – for each循环。 我发现它非常有用,只想从集合中删除对象。 在从电子表格中的预定义行(如行)中删除对象时,如果使用索引并从最大值开始并返回第一个值,则代码会更简单。 (使用迭代器的步骤-1)(否则需要一个偏移量,一旦活动的一个被删除,For就会将枚举器指针移回到前一个对象) 例如。 For intA = 10 to 1 step -1 ' … Next 如何使用For Each | 接下来例如。 For each rngCell in Selection.Cells ' … Next 我怎么能循环使用for each循环语法?

删除vba中的写入语句的双引号

这段代码会将日志文件写入LogFilePath,并如下生成输出。 StarRange和EndRange是一个variables,其值将从其他函数中填充。 "Start postion",A1 "End position",B100 —Code—————– Sub WriteLogFile() Dim FilePath As String LogFilePath = WriteTextBox.Text LogFilePath = LogFilePath & ".log" Open LogFilePath For Output As #2 Write #2, "Start postion"; StarRange Write #2, "End position"; EndRange Close #2 MsgBox FinalFileName End Sub 我的问题是如何从输出中删除双引号,并产生如下输出。 谢谢 Start position = A1 End position = B100

从Outlook下载附件并在Excel中打开

我试图下载并使用Excel中的VBA在Outlook电子邮件中打开Excel电子表格附件。 我怎么能够: 从我的Outlook收件箱中的第一封电子邮件(最新电子邮件) 下载唯一的附件 将附件保存在具有指定path的文件中(例如:“C:…”) 使用: 当前date + 以前的文件名重命名附件名称 将电子邮件保存到不同的文件夹,path如“C:…” 在Outlook中将电子邮件标记为“已读” 在Excel中打开 Excel的附件 我也希望能够将以下内容保存为分配给各个variables的单个string: 发件人电子邮件地址 接收date 发送date 学科 电子邮件的消息 虽然这可能会更好地问一个单独的问题/自己看看。 我目前所做的代码来自其他在线论坛,可能不是很有帮助。 不过,这里有一些我一直在努力的东西: Sub SaveAttachments() Dim olFolder As Outlook.MAPIFolder Dim att As Outlook.Attachment Dim strFilePath As String Dim fsSaveFolder As String fsSaveFolder = "C:\test\" strFilePath = "C:\temp\" Set olFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) For Each msg In olFolder.Items […]

VBA检查文件是否存在

我有这个代码。 它应该检查一个文件是否存在,如果有的话打开它。 如果文件存在,它会起作用,如果不存在,那么每当我将文本框留空并单击提交button时,它就会失败。 我想要的,如果文本框是空的就显示错误消息,就像文件不存在一样。 运行时错误“1004” Dim File As String File = TextBox1.Value Dim DirFile As String DirFile = "C:\Documents and Settings\Administrator\Desktop\" & File If Dir(DirFile) = "" Then MsgBox "File does not exist" Else Workbooks.Open Filename:=DirFile End If

用VBA隐藏Excel工作表

我有一个Excel电子表格三张。 其中一张纸包含其他纸张之一的公式。 是否有一个编程方式来隐藏包含这些公式的表单?

Excel 2013 VBA清除所有筛选器macros

看来,旧的macros不起作用。 我有适当的安全设置运行VBAmacros,但是当我已经尝试了几个方法清除工作表上的所有筛选器,我得到一个编译错误。 这是我所尝试的: Sub AutoFilter_Remove() 'This macro removes any filtering in order to display all of the data but it does not remove the filter arrows ActiveSheet.ShowAllData End Sub 我有工作表上的button来清除所有filter,方便用户使用,因为工作表中有许多列上有filter的列。

阅读Excel文件的VBAmacros(或vbaProject.bin),而无需在MS Excel中打开它

我想分析一下Excel文件,特别是那些里面含有VBA程序的文件。 因为我打算一个接一个地在很多Excel文件上运行这个分析,所以我不想在Microsoft Excel中打开这些文件来分析它们。 一个难点是find并parsingExcel文件的VBAmacros。 我们知道一个Excel文件可以被转换成包含许多.xml和vbaProject.bin .zip文件,可以肯定的是VBAmacros在vbaProject.bin 。 但是,问题是如何读取? 有谁知道是否有任何工具或API来查找和parsingVBAmacros? 有谁知道是否有任何工具或API来读取vbaProject.bin ?