Tag: vba

分割函数返回的数组大小 – Excel VBA

这是我迄今为止所做的。 Sub MP_division() Worksheets(3).Activate Dim last_cell As Integer Dim platforms() As String Dim arr_size As Integer platforms = Split(Cells(2, 47), ", ") last_cell = Mid(Range("A1048576").End(xlUp).Address, 4) arr_size = len(platforms) // is there something like this? For x = 1 To last_cell For y = 1 To arr_size //do something Next Next End Sub 我的问题是,我怎么可能得到由分裂函数返回的数组大小(arr_size),以便我可以在我的for循环? 谢谢。

Excel:使条件格式化为静态

有没有办法将条件格式转换为Excel中的静态格式? 我试图导出一个Excel工作表的范围到一个新的工作簿,具有相同的外观,但没有公式,链接等。这里的问题是,我有条件格式依赖于导出范围以外的计算。 我已经尝试将工作簿保存为.html,奇怪的是,在IE中格式化显示,而不是在Excel中重新打开时。

VBA Excel,inputbox与整数不匹配

我的代码 Dim a As Integer a = InputBox("Enter the number", "Program", "", 7000, 6000) If a = Empty Then ' do code… Else MsgBox "Enter the number." End If 如果我留下一个空字段,Excel将返回Type Mismatch错误。 我想显示一条消息。

Excel VBA:无法获得匹配,错误“无法获取WorksheetFunction类的匹配属性”

对于一切美好的爱情,我似乎无法得到这个工作。 我不断收到上面提到的错误。 我有这个表,我试图找出代码是否匹配它自己的子代码在另一列内的其他地方,但它是错误的。 非常感谢您的帮助。 Sub testing() Dim m1 As long Dim myrange As Range Set myrange = Worksheets("Sheet1").Range("B2:B23") For e = 2 To 23 m1= Application.WorksheetFunction.Match(Cells(e, 1).Value, myrange, 0) If m1 > 0 Then Cells(e, 3).Value = "Yes" Else Cells(e, 3).Value = "No" End If Next e MsgBox "Complete!" End Sub

从用户窗体中删除dynamic添加的控件

我有一个Excel的用户窗体dynamic添加checkbox。 我很早就join了checkbox,代码如下所示: Set chkBox = Me.Controls.Add("Forms.Checkbox.1", "Checkbox" & i) 之后,我想删除所有这些checkbox。 我试着这个代码: Dim j As Integer 'Remove all dynamically updated checkboxes For Each cont In Me.Controls For j = 1 To NumControls If cont.Name = "Checkbox" & j Then Me.Controls.Remove ("Checkbox" & j) End If Next j Next cont 但是收到以下错误信息: 任何帮助将不胜感激。

将整个范围转换为小写,而不通过单元格间接循环

我正在寻找VBA代码,它将整个单元格范围并将其转换为小写字母。 我发现以下内容: [A1:A20] = [index(lower(A1:A20),)] 这对一个固定的范围工作正常(不完全理解语法,但发现以下post:) 详细介绍上面的代码 我的问题是这样的: 我希望能够dynamic设置范围,因为我正在处理更改范围大小。 但是,以下不起作用,我似乎无法在VBA中使用INDIRECT()。 Range("A1:A" & n) = [index(lower(Range("A1:A" & n)),)] 有没有办法做到这一点? 我真的想避免使用for循环,因为我怀疑这应该是更快..

获取括号之间的值

我有一些东西,看起来像下面的string列: V2397(+60) 如何获得括号内的值? 在这种情况下+60 。 括号之前的数字(和字符)不是标准化的,也不是括号内的数字(可以是100,10-10甚至0 …)。

ExecuteExcel4Macro从封闭的工作簿中获取值

好的,我发现这一点代码,并认为它可能是很好的使用,如果我只需要从一个封闭的工作表拉一个值。 strInfoCell = "'" & strPath & "[" & strFile & "]Sheet1'!R3C3" myvalue = ExecuteExcel4Macro(strInfoCell) 不,当我运行这个代码时,我得到了一个strinfocell的值 :strInfoCell:“'C:\ Users \ my.name \ Desktop [QOS DGL stuff.xlsx] Sheet1'!R3C3”:String 但是当我运行代码时,文件打开对话框popup,显示“QOS DGL”的桌面文件显示。 这是什么原因造成的,为什么它不是像预期的那样拉回数据呢? 我知道path和文件名是正确的,casue如果我从debugging输出复制他们,并将其粘贴到开始>>运行然后正确的工作表打开 我知道sheet1(名为:ACL),在单元格(3,3​​)中有一个值, 干杯 亚伦

从VBA打开工作簿并禁用Workbook_Open()代码?

我正在打开使用VBA的电子表格,并且一些工作簿包含在调用Workbook_Open()时开始执行的代码。 如何使用VBA打开工作簿但停止自动执行代码? 我只打开工作簿来查看工作表中的公式 – 我不想执行任何代码。

除非空白,否则Excel头/页脚将不会通过VBA进行更改

免责声明:我已经使用VBA工作了很多年,所以这可能是一个问题,这个问题是由于我自己与我通常处理的语言完全不同而造成的。 所以; 我有一个工作簿(Excel 2010)与多张(20+),其中大多数是多页。 为了使打印的一切更容易,我想添加一些特定的表头,其中包括表格的名称,页数等等。 我已经写了一个小函数,应该(理论上)通过迭代设置标题的所有表单来完成此操作。 但是,由于某些原因,只有在标题为空时才有效。 如果它已经有一个值,拒绝覆盖原因不明。 Dim sheetIndex, numsheets As Integer sheetIndex = 1 numsheets = Sheets.Count ' Loop through each sheet, but don't set any of them to active While sheetIndex <= numsheets Dim sheetname, role, labeltext As String sheetname = Sheets(sheetIndex).name role = GetRole(mode) labeltext = "Some text – " & […]