Tag: excel vba

Excel 2010中的“表单控件”和“ActiveX控件”有什么区别?

使用Microsoft Excel 2010,我注意到可以插入到文档中的两种控件: 窗体控件和ActiveX控件 。 他们有什么区别?

给定Range对象时,循环遍历单元格区域中的每个单元格

假设我有以下代码: Sub TestRangeLoop() Dim rng As Range Set rng = Range("A1:A6") ''//Insert code to loop through rng here End Sub 我希望能够遍历rng指定的每个单元格的Range对象的集合。 从概念上讲,我想这样做: For Each rngCell As Range in rng ''//Do something with rngCell Next 我知道我可以通过手动parsingrng.Address和构buildRange对象来解决这个问题,但我希望有一个更直接的方式,不涉及stringparsing。

使用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 […]

Excel VBA如何使用默认应用程序打开文件

我想要一个Excel电子表格,在列A中有一个文件path和名称。当一个macros运行时,让我们说在A1中指定的文件应该在用户的机器上打开。 该文件可以是.doc,.xls,.txt等….而不是我的vba需要知道应用程序的完整path,我怎么可以告诉机器vba“请打开这个文件,并使用您的应用程序与扩展关联“? 我已经find了这个工作的完整path: dblShellReturned = Shell("C:\Windows\System32\notepad.exe myfile.txt, vbNormalFocus) 我怎么能得到它与如下工作: dblShellReturned = Shell("myfile.txt", vbNormalFocus) ' how do I get this to work 先谢谢你!

VBA运行时错误1004“应用程序定义或对象定义的错误”select范围时

select范围时遇到错误1004“应用程序定义或对象定义的错误”的问题。 我仍然可以select行(即Rows("21:21").select ),并在同一工作簿的其他工作表中select范围。 我不相信错误是在代码中。 也许它的一些设置我不知道? 我之前使用过相同的代码,但是由于某种原因,我不能在这个子函数中使用它(我已经评论了错误发生的地方)… Sub CopySheet1_to_PasteSheet2() Dim CLastFundRow As Integer Dim CFirstBlankRow As Integer 'Finds last row of content Windows("Excel.xlsm").Activate Sheets("Sheet1").Activate Range("C21").Select '>>>Error 1004 "Application-defined or Object-defined error" Occurs Selection.End(xlDown).Select CLastFundRow = ActiveCell.Row 'Finds first row without content CFirstBlankRow = CLastFundRow + 1 'Copy Data Range("A21:C" & CLastFundRow).Select Selection.Copy 'Paste Data Values Sheets("PalTrakExport […]

用VBA循环过滤列表最简单的方法是什么?

如果我在Excel中设置了一个自动filter,并且我想用VBA代码遍历一列中的所有可见数据,那么最简单的方法是什么? 所有已被过滤掉的隐藏行都不应该包含在内,所以从上到下的简单范围不会有帮助。 任何好主意? 谢谢。

Excel VBA – 查找包含数据的最后一列

我发现这个方法用于查找包含表格中最后一行的数据: ws.Range("A65536").End(xlUp).row 有没有类似的方法来查找包含在工作表中的最后一个数据列? 谢谢。

VBA Excel中的进度条

我正在做一个Excel应用程序,需要从数据库进行大量数据更新,因此需要时间。 我想在用户窗体中创build一个进度条,并在数据更新时popup。 我想要的酒吧只是一个小小的蓝色酒吧左右移动,并重复,直到更新完成,没有百分比需要。 我知道我应该使用progressbar控件,但我尝试了一段时间,但不能做到这一点。 编辑:我的问题是progressbar控件,我不能看到“进度”栏,它只是当表格popup完成。 我使用一个循环和DoEvent但是这是行不通的。 另外,我想要重复这个过程,而不是一次。

Excel VBA应用程序自动停止并显示消息“代码执行已被暂停”

从我在网上看到的情况来看,这是一个相当普遍的抱怨,但答案似乎更为罕见。 问题是这样的: 我们有许多Excel VBA应用程序,可以在许多用户的机器上完美工作。 然而,在一台机器上,他们停止了某些代码行。 它总是一样的线条,但是这些线条似乎没有任何共同之处。 如果在停机后按F5(运行),应用程序将继续运行,因此几乎就像已经添加了一个断点。 我们尝试从菜单中select“删除所有中断”,甚至添加中断并再次删除。 之前我们已经遇到了单个应用程序的这个问题,我们通过从模块中删除代码,编译并粘贴回来等等来“拦住”它。 现在的问题似乎与Excel本身相关,而不是一个单一的.xls,所以我们有点不确定如何pipe理。 任何帮助将感激地收到:) 谢谢, 菲利普惠廷顿

Excelmacros(VBA)将多列转置为多行

这种转变正是我想要实现的。 只是为了说明,我已经把它作为表。所以基本上,前3列应该重复有多less颜色可用。 我search了其他类似的,但是当我想要重复多列的时候找不到。 我发现这个代码在线,但它是名称感谢位置感谢位置感谢位置感谢位置,并使其如下名称谢谢位置 Sub createData() Dim dSht As Worksheet Dim sSht As Worksheet Dim colCount As Long Dim endRow As Long Dim endRow2 As Long Set dSht = Sheets("Sheet1") 'Where the data sits Set sSht = Sheets("Sheet2") 'Where the transposed data goes sSht.Range("A2:C60000").ClearContents colCount = dSht.Range("A1").End(xlToRight).Column '// loops through all the columns extracting data […]