我怎样才能find一个公式的单元格范围内的最后一行,公式的结果是一个实际值,而不是空的? 以简化的方式来说,单元格范围("E1:E10")保持涉及单元格A1到A10的公式,如下所示=IF("A1"="","","A1") 。 但是只有单元格A1到A6填充了一个值,所以单元格E7到E10的公式结果将是空的。 试图做到: lastRow = ActiveSheet.Range("E" & Rows.Count).End(xlUp).Row 导致lastRow的值为10 。 我想要的是在这个例子中lastRow的值是6 。 实际的代码比这更复杂,所以我不能只检查列A中的最后一行,因为这些公式是指不同工作表上的单个单元格,并且是dynamic添加的。
有没有办法删除VBA中的数组的第一个元素? 像JavaScript的shift()方法? Option Explicit Sub Macro1() Dim matriz() As Variant Dim x As Variant matriz = Array(0) ReDim Preserve matriz(1) matriz(1) = 5 ReDim Preserve matriz(2) matriz(2) = 10 ReDim Preserve matriz(3) matriz(3) = 4 ReDim Preserve matriz(1 To UBound(matriz)) For Each x In matriz Debug.Print x Next x End Sub 这是returing错误:下Subscript out of range
我想在VBA中编写一个简单的函数,它将testing一个真实的值,并输出一个string结果,如果它是一个完美的立方体。 这是我的代码: Function PerfectCubeTest(x as Double) If (x) ^ (1 / 3) = Int(x) Then PerfectCubeTest = "Perfect" Else PerfectCubeTest = "Flawed" End If End Function 正如你所看到的,我使用一个简单的if语句来testing一个值的立方根是否等于它的整数部分(即没有余数)。 我尝试用一些完美的立方体(1,8,27,64,125)testing函数,但它只适用于数字1.任何其他值吐出“有缺陷”的情况。 任何想法这里有什么问题?
我正试图在Excel表单上设置几个button来向不同的人群发送电子邮件。 我在单独的工作表上创build了几个单元格范围来列出单独的电子邮件地址。 例如,我想要“buttonA”打开Outlook,并将“工作表B:单元格D3-D6”中的电子邮件地址列表。 然后,所有必须做的是在Outlook中点击“发送”。 这是我的VBA代码到目前为止,但我无法得到它的工作。 有人能告诉我我错过了什么,或者错了吗? VB: Sub Mail_workbook_Outlook_1() 'Working in 2000-2010 'This example send the last saved version of the Activeworkbook Dim OutApp As Object Dim OutMail As Object EmailTo = Worksheets("Selections").Range("D3:D6") Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) On Error Resume Next With OutMail .To = EmailTo .CC = "person1@email.com;person2@email.com" .BCC = […]
我自己写一个快速的应用程序 – 第一个项目,但是我试图findVBA代码写入到Excel中的命名单元格的inputstring的结果。 例如,input框会提示“您要添加到列表中的哪个工作号码?”,然后用户input一个参考号码,如“FX1234356”。 macros然后需要将这些信息写入一个单元格中,然后我可以使用它来完成macros(基本上是在某些数据中进行search)。
这个问题与我以前的问题有关。 你能解释一下,或提供一个链接,说明Excel VBA代码密码保护如何在2007年之前的版本中实际工作? Excel 2007和以前版本在密码保护方面有什么不同? Excel的密码保护实际上是encryption代码吗? 如果Excel执行encryption,Excel如何执行? 最后,excel的密码清除软件如何工作?
这不是usedrange问题。 例如在Excel中,用户使用鼠标select一个范围(可能是空的),比方说B4:C12 在这之后,不用取消select范围用户按下macros,macros应告诉B4:C12 。 任何人都可以显示示例 这个macros应该是以下的一些东西: Sub showrng() MsgBox SelectedRange.Address(ReferenceStyle:=xlA1) End Sub
在Excel VBA中, Range("A1").Value应返回工作表上范围A1的基础值。 但是,如果单元格格式为“会计”,则会得到不同的值。 我如何获得细胞的实际潜在价值? 工作表 创build一个新文档,在单元格中input以下值: A1:0.00001 A2:= A1 A3:= A1 = A2 如你所料,A3结果为TRUE 。 现在将A2的格式更改为“记帐”,使用两位小数。 A2现在读取$ 0.00 ,但底层值仍然是0.00001 ,所以A3仍然是TRUE 。 VBA 新build一个模块并添加以下function: Function f(addr As String) f = Range(addr).Value End Function 正如你所看到的,这只是使用Range对象的Value方法获取范围的Value 。 工作表 回到工作表。 input以下值: B1:= f(“A1”) B2:= f(“A2”) B3:= B1 = B2 A1和A2具有相同的底层值,但是B1和B2不会,即使它们都是使用A1和A2的Value方法计算的。 A3 ( =A1=A2 )中的expression式正在访问A1和A2的实际底层值。 如何在VBA中访问这些值?
我有一个函数在VBA中生成一个string数组。 从另一个VBA函数调用时,它工作正常,但从工作表中调用时没有问题。 以下是应该如何使用它: selectA1:A3 在公式栏中input=Test() ,然后Ctrl-Shift-Enter使其成为一个数组函数 A1应该包含A ,A2应该包含B ,而A3应该包含C 当我真正尝试这个时,它将A放在数组的所有三个单元格中。 我怎样才能得到Test返回到数组的不同单元格的数据? 对于那些想看到它的人来说,这里是函数的代码。 请记住,从其他函数调用时,该函数可以正常工作。 Function Test() As String() Dim a(1 To 3) As String a(1) = "A" a(2) = "B" a(3) = "C" Test = a End Function
在VBA中,有些时候我们想在一些条件成立之后退出程序。 但是,我使用end还是exit sub ?