Tag: 函数

打印数组结果的活动单元格的VBAfunction

我想写一个函数的结果应该打印/写入一个单元格的数组范围。 活动单元格应该是第一个元素,下一个单元格是第二个元素(等等)。 所以,例如,如果我当前的活动单元格是B2,那么所需的结果应该如下图所示。 我的下面的代码只能在Debug.Pring上工作,但是我不知道如何在Excel工作表上实际使用它。 Function ShowResult() Dim strArray() As String Dim result As String result = "Maybe I think too much but something's wrong" strArray = Split(result, " ") Dim StartRow, i As Integer StartRow = 1 For i = 0 To UBound(strArray) Debug.Print strArray(i) 'Range("A" & i + StartRow).Value = strArray(i) <–I tried even […]

VBA Excel将Main Sub中的值链接到其调用的函数

我在excel中对vba还是很新的东西,并且正面临着解决这个问题的困难。我真的很希望有人能够启发我,我的代码出了什么问题,并为我提供了尽可能简化的解决scheme。 非常感谢,真的很感激! 问题:贷款申请根据客户的收入进行评估。 我们应该使用For-Next函数和IF语句来显示以下批准状态: 客户的收入与各自的地位 60,000以特殊费率批准; > 40,000标准费率批准; > 24,000等待经理的批准; 其他情况拒绝申请 从Excel中的第2行开始,B列包含“客户收入”数字,Excel中的C列包含“贷款申请状态”数字。 我的代码运行良好,如下所示: Sub ForNext_If() 'CINCOME = Customer Income,Loan status= the application status, x = the row number, FinalRow= last row number x = 2 For x = 2 To 11 Step 1 CINCOME = Cells(x, 2).Value If CINCOME > 60000 Then LOANSTATUS = "Approve […]

小数点后如何保持可变的数字量

我正在使用Excel 2007年。我有多个数据集在每行中随机数的字符。 例如: A1 1.60 A2 0.008 A3 0.900 A4 1.0 A5 0.56 A6 1.703 我需要在不同的页面上进行不同的顺序,比如 A1 1.60 A2 0.900 A3 1.0 A4 0.56 A5 1.703 A6 0.008 不幸的是,每当我把它移动到一个新的页面(例如,我可以移动它= = Page1!A1)数字恢复到 A1 1.6 A2 0.9 A3 1 A4 0.56 A5 1.703 A6 0.008 所以我失去了零。 使事情复杂化,每个条目/行/列的字符数在数据集之间变化。 这意味着使用=TEXT(A1,"#.#0") 不能工作 – 有时我的A1可能是1498或其他。 我(可能)正在寻找能够“计数”显示小数的代码,然后自动生成这些代码。 或者其他任何方式来获得我的可变数据正确的小数(或缺less)将做的。 VBA /macros/function?

使用变长主题和退货的中间和左侧函数的Excel – 分割内容

在Excel中使用左侧和中间函数将Outlook格式的联系人分割。 使用[]显示单元格的内容… A1 = [fname lname <email@domain.com>;] 我需要将这些内容分成以下几部分,除去空格,<,;等等。请记住,不能使用字符数字的静态开始或长度,因为所有这些名称,电子邮件,域都是可变的。 B1 = [fname] C1 = [lname] D1 = [email@domain.com] 我在C1上遇到问题。 这里是我使用的function。 对于B1 = [= LEFT(A1,FIND(“”,A1)-1)] – 这只是第一个名字 对于C1 = [= MID(A1,FIND(“”,A1)+ 1,FIND(“”,A1))] – 这不起作用,它切断更长的姓 对于D1 = [= MID(A1,FIND(“<”,A1)+ 1,SEARCH(“>”,A1,1)+1)] – 这适用于拉出电子邮件地址。 任何人都可以帮助C1的这个function? 我无法弄清楚如何阻止它缩短一些姓氏。 我试图设置字符的数量,以find下一个开放的空间“”之后的姓氏和“<”,但它不起作用。 让我知道。 谢谢!

Excel函数的数字代码

我想知道是否有办法将工作表从Adobe Flex导出到另一种语言的Excel。 例如,如果我使用英文的函数导出它,但是有人用excel的葡萄牙语版本打开它呢? 他们是否能正常阅读? 如果没有,是否有任何数字编码的function参考? 我知道Excel实际上使用函数的数值而不是search名字…

将Excel VBA函数中的数组传递给电子表格

我已经多次从电子表格到VBA函数来回传递数组。 我最近“升级”到Excel 365,现在我无法得到它的工作。 例如: Public Function test(x As Range) Dim y() ReDim y(3) y(1) = 1 y(2) = 2 y(3) = 3 test = y End Function 然后突出显示三个单元格,例如b1:b3,并在顶部单元格中input= test(a1:a2),然后按shift-enter。 这将使用数组公式来填充范围,该公式应该从testing函数接收y()。 但是,引用函数的单元格全是零。 我把debugging线,我可以告诉function正在按预期运行。 这只是没有将数组传递到电子表格。 那是怎么回事? 有没有其他人有这种经验? @RDHS,@ tim-williams和@ garys-student – 感谢您提供现场答案。 还有加里的学生 – 谢谢你的快速反应。 我会投票的人,但我不能'因为我是小白。 但是……为了完整起见,你的回答提出了另一个更为理论化的问题:我应该能够直接将一个一维数组强制转换成一个范围列,反之亦然。 显然很容易检查范围的形状,并相应地进行转换(现在很容易,你已经告诉我如何!)但它是如此的马虎: 使用上面的例子,而不是只写test = y 我需要写: 如果x.rows.count = 1,则testing= y else […]

将date的date格式更改为string的问题

我目前正在尝试将yyyymmddtypes的date转换为ddmmyyy格式。 我试过使用DATE函数,像这样的东西: =DATE(LEFT(A3;4);MID(A3;5;3);RIGHT(A3;7)) 此函数的原始date是20120401但公式返回: 16.12.2104 。 我尝试过使用函数YEAR,MONTH和DAY而不是LEFT,MID和RIGHT,但这不是正确的方法。 我也尝试使用DATEVALUE,但由于Excel可能不认可yyyymmdd作为date,它给了我一个#VALUE! 错误。 我发现了几个SQL解决scheme,但它不是我强大的一面 – 而这应该可以轻松地在Excel中实现。 有没有办法在Excel中做到这一点?

Google Spreadsheet / EXCEL]如何获得一行中的最后一个值? 用A1作为第一个单元格?

ABCEF 1鲍勃——克里斯——-泰勒———乔 2蛋糕—–水果——-巧克力—鸡蛋 3 4 五 我如何去使用一个公式,总是会select行A1中的最后一个单元格:F1? 如何获得第2行的单元格的值是最后一个数据单元格? (在我的情况下,乔) 提前致谢。

在VBA中传递嵌套数组作为函数的参数导致编译错误“Expected:=”

我正在尝试构build一个数组(testSheets),其中包含一个文件名和一个文件path作为string。 然后我希望在另一个数组(shtsTmpl)中包含这个数组。 然后,我想将嵌套数组中的string传递给函数的参数(copySheets),以简单地返回msgbox中的组合文件path。 这第一位代码在msg框中成功返回“TSTSheets.xlsx”。 Sub prepSheets() Dim testSheets() As Variant ReDim testSheets(0) testSheets(0) = "TSTSheets.xlsx" Dim shtsTmpl() As Variant shtsTmpl = Array(testSheets) copySheets (shtsTmpl(0)(0)) End Sub Function copySheets(srcName As String) MsgBox (srcName) End Function 这第二位代码返回一个编译错误,在调用copySheets函数的行上显示“Expected:=”,我不明白为什么。 Sub testSheets() Dim testSheets() As Variant ReDim testSheets(1) testSheets(0) = "TSTSheets.xlsx" testSheets(1) = "C:\" Dim shtsTmpl() As Variant shtsTmpl = […]

Excel VBA UDF格式 – 在计算之前更改参数值

我试图在Excel VBA中编写公式来计算:RR =((A /(A + B))/(C /(C + D))) 当四个参数(A,B,C,D)中的任何一个都是0时,我想在计算中将它们的值更改为0.5。 有这样一个简单的方法吗? 我相信我的格式是错的,或者我错了。 任何有用的提示将不胜感激。 我试过了: Function RR(A, B, C, D) As Double If A = 0 And B = 0 Then A = 0.5 B = 0.5 RR = ((A / (A + B)) / (C / (C + D))) ElseIf A = 0 Then A […]