Tag: 函数

如何在没有macros的情况下忽略excel中的函数?

曾经有一个称为评估的函数来评估一个单元格的内容。 但是,这个function似乎不再存在。 这是我正在寻找解决的问题(这应该是批量运行): A1包含一个连接函数,该函数创buildstring='C:\users\example\[ref.xlsx]'Sheet!D5 。 这个string应该是对另一个工作簿中单元格的引用。 但是,Excel将等号视为一个string,因此不会执行该function。 我知道最常见的解决方法: 复制和粘贴只到另一个单元格的值,然后用“=”replace“=”和单元格自动评估(不是一个选项,因为需要手动处理,不能批量使用) 编写一个评估单元格的macros(不是一个选项,因为批处理与macros启用的工作簿不兼容) 创build一个评估每个评估macros的单元格的UDF(也需要启用macros的工作簿,因此不是一个选项) macros不是一个选项。 每个function无法自动执行的手动过程也不是一个选项。 我不知何故需要excel来显示参考单元的内容。 谢谢你的帮助!!! Mpdegn

调用函数发送没有这么多代码在Excel中的电子邮件

我有一个Excel电子表格,select预先定义的单元格,并从此创build和电子邮件时,用户按下button。 当我有大约3到4行数据,但现在我有超过500行,这工作得很好。 请在这里露面,因为我在VBA编码不太好。 我想要做的是,而不是重复每行的代码有一个函数,每次被调用。 我希望代码能够从行末尾的链接中获得行(我还需要弄清楚如何链接到VBA,我知道如何通过button来完成,但每个末尾都有一个链接行会好得多)。 链接会说发送电子邮件。 如果用户按下该链接,则将select链接所在的行并发送电子邮件。 希望是有道理的。 我只想要1个函数,这可以从中调用。 而不必每一次为每一行复制代码。 任何好的方法来做到这一点? 请参阅下面的代码和电子表格。 Sub SendEmail() Dim objOutlook As Outlook.Application Set objOutlook = New Outlook.Application Dim objEmail As Outlook.MailItem Set objEmail = objOutlook.CreateItem(olMailItem) objEmail.Subject = Cells(2, 1).Text objEmail.Body = "============" & vbNewLine & Cells(2, 3).Text & vbNewLine & "============" & vbNewLine & Cells(2, 6).Text objEmail.To = Cells(2, […]

如何根据Excel中的多个If计算总和?

背景是,我正在制作预算电子表格。 我在不同的日子有不同的账单。 (即周一到期的账单和10日到期的账单) 我想要一个函数,将在D列中放入适当数量的资金,并在E列中说明资金进/出的原因。 目前我有两个不同的公式(可能是错误的)。 E列的公式:(已经在文档中,似乎工作正常,除了我不能添加额外的文本到单元格) =IF(DAY(C36)=7," Amy Pay","")&IF(DAY(C36)=22," Amy Pay","")&IF(DAY(C36)=8," Family Bills","")&IF(DAY(C36)=6," Dollar Shave Club","")&IF(DAY(C36)=2," Amy Cap One VISA","")&IF(DAY(C36)=3," Chase VISA","")&IF(DAY(C36)=8," Being Smart","")&IF(DAY(C36)=17," Gym","")&IF(DAY(C36)=11," Netflix","")&IF(DAY(C36)=19," Cap One MC","")&IF(DAY(C36)=29," CenturyLink","")&IF(DAY(C36)=6," Haley Cap One Visa","")&IF(DAY(C36)=10," SRP","")&IF(DAY(C36)=23, "Car Payment","")&IF(DAY(C36)=30, "Rent","")&IF((B36)="Mon"," Monday","")&IF((B36)="Fri"," Friday","")&IF((B36)="Fri"," Haley Pay","") D列的公式:(不在列中,因为它不工作,我想要的) =IF(DAY(B40)=7,"1474.22","")&IF(DAY(B40)=22,"1474.22","")&IF(DAY(B40)=8,"-100","")&IF(DAY(B40)=6,"-9","")&IF(DAY(B40)=2,"-100","")&IF(DAY(B40)=3,"-100","")&IF(DAY(B40)=8,"-400","")&IF(DAY(B40)=17,"-20.05","")&IF(DAY(B40)=11,"-8.63","")&IF(DAY(B40)=19,"-450","")&IF(DAY(B40)=29,"-50","")&IF(DAY(B40)=6,"-150","")&IF(DAY(B40)=10,"-200","")&IF(DAY(B40)=23,"-325","")&IF(DAY(B40)=30,"-500","")&IF((A40)="Mon","-125","")&IF((A40)="Fri","-325","")&IF((A40)="Fri","400","") View post on imgur.com 问题是在列D中,而不是提供数字的总和,它列出列中的数字。 View post on imgur.com 我有一个build议添加= SUM(在IF前面的函数,但是当我这样做的时候,#VALUE!就是这个字段的结果)使用这个公式:(查看图像通过改变附加文本到/ […]

如何从一个函数返回一个variablesstring,并引用一个子string

我目前正在研究一个VBA工作表,它将根据相对切换button的真/假值通过电子邮件发送某些单元格值。 我正在使用相当多的切换button,并且正在研究添加一个函数来返回单元格值的string与相应的切换button值。 但是,我当前的string的返回variables是空白的。 我目前有下面的电子邮件子,这是通过命令button调用: Public Sub Send_Email_Using_VBA() Dim Email_Subject, Email_Send_From, Email_Send_To, _ Email_Cc, Email_Bcc, Email_Body, First_Name, Second_Name, Third_Name As String Dim example As Range Dim callOutString As String Dim Mail_Object, Mail_Single As Variant Email_Subject = "Check Sheet Completed" Email_Send_From = "myemail@email.com" Email_Send_To = "name@email.com" Email_Cc = "" Email_Bcc = "" Email_Body = "" On Error […]

我可以使用Excel VBA重写Javascript函数吗?

不知道如何做到这一点,但如果button的button类似于下面: onclick="ConfirmAvailable();" function ConfirmAvailable() { if (document.getElementById("AvailableCB").checked) { return YesNoDialog("'Are you sure?'"); } else { return true; } } 是否有可能,如果我使用Excel VBA设置ConfirmAvailable()=“”将其重置为上述内容,或者甚至始终将输出设置为= true? 结果传递给另一个函数,所以我需要它返回true,但理想情况下,我想将其更改为无,然后将其返回到原始状态,如果可能的话。 任何帮助将不胜感激,因为我不擅长这个东西。

Excel VBA:当将Variant数组返回到所选范围时,需要解决方法

我正在努力处理一个涉及明显的Excel 255个字符限制的常见问题。 尝试从函数返回variables数组到工作表上的选定区域时遇到错误。 当函数的返回数组中的每个单元格都小于255个字符时,它们会按照它们应该的方式发布到工作表:在选定范围内的每个单元格中会出现一个元素。 但是,如果返回的variables数组中的任何元素长于255个字符,我会得到一个值! 错误。 这些错误是不好的,因为我需要我的长元素,并希望保持数据在一起! 这个问题的版本在许多论坛上反复出现,但是当数组单元格超过255个字符时,我可以find一个简单的通用解决scheme,用于将variables数组返回到所选范围(不一定包含公式)。 我最大的元素大约是1000,但如果解决scheme可以容纳多达2000个字符的元素,那将会更好。 最好,我希望这是用一个函数,或可以添加到我的function(不是子例程)的附加代码行。 我想避免子程序的原因是:我不想对任何范围进行硬编码。 我希望这是灵活的,输出位置是dynamic的基于我当前的select。 请,如果你能帮助find一种方法来产生一个函数,它采用一个Variant数组作为input,并维护所需的数组:单元格1:1的关系,我会很感激。 所以这个function与短细胞工作: Function WriteUnder255Cells() Dim myArray(3) As Variant 'this the variant array I will attempt to write ' Here I fill each element with less than 255 characters ' it should output them if you call the function properly. myArray(0) = "dog" myArray(1) […]

使用子/function修改variables

如果它们是肯定的,我想在某些variables前加一个+符号。 例如: Sub mySub() Dim cash As Variant End Sub 如果我这样做,它运作良好: Dim plus As String plus = "+" If cash > 0 Then cash = plus & cash Else cash= cash End If 但是我正在寻找一个子或者函数,如果它们是肯定的,它将会把我所有的variables和在它们前面加上一个+符号。 sub NewSub(i As Variant) If i > 0 Then i = plus & i Else i = i End If End […]

Excel UDF计算应返回“原始”值

我一直在努力处理VBA问题,我会尽可能地彻底地解释它。 我使用我自己的RTD实现创build了一个VSTO插件,我从我的Excel工作表调用。 为了避免在单元格中使用完整的RTD语法,我创build了一个UDF,从表单中隐藏了该API。 我创build的RTD服务器可以通过自定义function区组件中的button启用和禁用。 我想要达到的行为如下: 如果服务器被禁用,并且在单元格中input了对我的函数的引用,我希望单元格显示为Disabled 如果服务器被禁用 ,但function已被启用(并因此显示一个值的单元格)中input一个单元格,我希望该单元格保持显示该值 如果服务器启用 ,我希望单元格显示Loading 听起来很容易。 这是一个非function代码的例子: Public Function RetrieveData(id as Long) Dim result as String // This returns either 'Disabled' or 'Loading' result = Application.Worksheet.Function.RTD("SERVERNAME", "", id) RetrieveData = result If(result = "Disabled") Then // Obviously, this recurses (and fails), so that's not an option If(Not IsEmpty(Application.Caller.Value2)) Then // […]

我如何执行Excel函数?

有没有办法将调用打包到VBA中的Excel内置函数?

函数参数VBA

我有这三个function: 当我运行前两个函数时,没有任何问题,但是当我运行最后一个函数(LMTD)时,它表示'除以零',但是当我debugging一些参数有值时,有些不会。 我知道我必须做什么,但我想知道为什么我必须这样做,因为这对我没有意义。 Tinn函数没有Tut的参数,所以我必须将它们添加到Tinn函数的参数中。 Tut也是一样,不知道Tinn的所有论点,LMTD必须同时具备Tinn和Tut的论点。 如果我这样做,这一切都运行顺利。 为什么我必须这样做? Public Function Tinn(Tw, Qw, Qp, Q, deltaT) Tinn = (((Tw * Qw) + (Tut(Q, fd, mix) * Q)) / Qp) + deltaT End Function Public Function Tut(Q, fd, mix) Tut = Tinn(Tw, Qw, Qp, Q, deltaT) _ – (avgittEffektAiUiLMTD() / ((Q * fd * mix) / 3600)) End […]