Tag: 用户定义的函数

重新计算自定义VBA函数,仅在请求

我的问题是这样的: 我想在电子表格中使用一个自定义的Ribbon命令button,甚至是一个简单的命令button来初始化一个OLEDB数据库连接,并更新/重新计算所有需要这种连接的用户定义的函数,或者我指定的那些连接。 除了点击特定button时,我不希望这些function中的任何一个重新计算。 我有困难搞清楚如何做到这一点。 请提供您的帮助或build议。 请参阅下面的细节我做了什么: 我目前在一个访问数据库中存储数据,我使用Excel中的VBA进行特定的查询。 我已经将每个数据请求例程embedded到名为[fnc]的模块下的一组function中。 然后,我将它们作为用户定义的函数从Excel电子表格中进行访问。 这里给出一个例子: Function ValueV(mm As String, yy As String, qtable As String, qcode As String, compare_period As Integer, average_period As Integer, weight As Boolean) As Variant 'Month Value Formula for Horizontal Data 'mm – month value 2-digit 'yy – year value 4-digit 'qtable – query table name […]

连续和函数

我试图做一个简单的总和function,总和,直到我打到一个空白单元格。 我不知道为什么它不工作。 我正在尝试汇总货币,并将产出作为货币。 到目前为止我有: Function SumContin(X) Dim Ro As Long Dim Col As Long Dim Ro1 As Long Dim Col1 As Long Ro = Application.WorksheetFunction.Row(X) Col = Application.WorksheetFunction.Column(X) Do While Cells(Ro, Col) <> "" Sum = Sum + CInt(Cells(Ro, Col)) Ro = Ro – 1 Loop End Function

VBA用户定义函数返回奇怪或无结果

我正在创build一个UDF,用于生成一个可以放入HighCharts的string。 所以基本上,我input两个范围的数据(数字或文本)到UDF和输出一个string或格式化对,看起来像这样[[DataX,DataY],[DataX1,DataY1],…] 事情的第一范围工作正常,但第二个范围给我垃圾的结果。 这是我的代码: Function HCP(Rng1 As Range, Rng2 As Range) As String ' this function will take columns of data and properly format them for highcharts Dim Str1, Str2, retVal As String Dim leng, i, j As Integer Dim col1, col2, row1, row2 As Long Dim temp1, temp2 As Range Str1 = "[" Str2 […]

MATLAB – 生成函数时只读取第一列variables

这可能是一个基本的问题。 我是初学者。 当我试图导入一个excel文件与5列和第1行列标题,并生成一个相同的function,MATLAB没有生成5个variables按列标题,但只有一个variables,这也与默认名字,答案。 请帮助。 这里是代码: function [Date,Open,High,Low,Close] = importfile(workbookFile,sheetName,startRow,endRow) % If no sheet is specified, read first sheet if nargin == 1 || isempty(sheetName) sheetName = 1; end % If row start and end points are not specified, define defaults if nargin <= 3 startRow = 2; endRow = 250; end %% Import the data, […]

VBA – 优化UDF(单元格颜色计数器)

我有一个主控制表和40-50个不同的数据表的工作簿,从外部来源(每个表格有30到500行和10到100列的数据)复制/粘贴到文件中。 该工作手册的目的是比较各种数据表栏中的单元格,如果符合某个方差标准,则将其突出显示; 然后每个数据表上的高亮显示的单元格被计数并显示在主控制表单上(使用UDF公式)。 在读完cpearson网站之后,我意识到,如果使用传统的条件格式,计算突出显示的单元格几乎是不可能的……但是我只有在我已经在VBA中将自定义的CF代码写入了40多张表格之后才明白这一点在数据表被使用复制/粘贴“刷新”之后,格式化可以被删除或者通过macrosbutton来应用)。 所以,经过一个很长的哭泣,我基本上重新创build条件格式(再次在VBA)使用循环来实现我的目标。 示例标准:比所比较的单元值小或大于25%。 示例数据表: [col 1] *** [col 2] 2014 *****2015 1 *********1.1 3 **********3 532 *******555 323 *******46 <<<this would Highlight 42 *******-112 <<<<this would highlight (The highlighting would occur if cells in col 2 are either 25% greater or less than the cells in col 1 cell for the corresponding […]

Excelmacros通过字体颜色求和

我想在Excel中写一个macros来总结字体颜色。 一位同事build议我使用这篇文章来帮忙: ExtendOffice 。 但是,它总是给出一个语法错误,我不知道为什么。 代码是: Public Function SumByColor(pRange1 As Range, pRange2 As Range) As Double Application.Volatile Dim rng As Range Dim xTotal As Double xTotal = 0 For Each rng In pRange1 If rng.Font.Color = pRange2.Font.Color Then xTotal = xTotal + rng.Value End If Next SumByColor = xTotal End Function

“Microsoft Office Excel正在等待其他应用程序完成OLE操作”是什么意思?

我有一个工作RTD Excel自动化插件类似于这里描述的。 间歇性地尝试加载包含此公式的工作表时,出现以下错误: Microsoft Office Excel正在等待另一个应用程序来完成一个OLE操作。 我已经选中并取消选中“忽略使用dynamic数据交换(DDE)”的其他应用程序(根据一些论坛讨论(我无法再find))。 两者都行不通。 谷歌产生这个错误,但没有解决scheme很多点击。 这里有一个古老的知识基础文章,但也没有解决。 什么是造成这个错误? 有什么我可以做,以避免它? 谢谢!

如何添加工具提示/下拉菜单/popup到UDF /用户定义的Excel 2010function?

我很想能够添加工具提示/下拉/popup到我的用户定义的Excel 2010function。 从下面的截图可以看出VLOOKUP的function类似。 如果你知道如何创build它,请分享。

如何使用Excel VBA函数获取一系列单元格来单独计算而不是全部显示相同的值?

我已经在VBA中编写了一个函数,它查看某个附近单元格的内容,然后根据它们的值返回一个string。 我想要这个函数在整列的单元格上运行。 然而,当我填满时,每个单元格显示相同的值,无论我编辑和按下的单元格input。 我已经尝试设置Application.Volatile以及重新计算工作表(都使用F9和ActiveSheet.Calculate ),但没有任何工作。 我也尝试设置ActiveCell.Value是我想要返回的string,然后不返回任何从函数,但Excel表示这是一个循环引用。 有什么build议么? 这是我的代码(的相关部分): Function foginSpeechP() Application.Volatile True ActiveSheet.Calculate '….. If scenario = "SR-1A" Then first = "nofog" secnd = "fog" ElseIf scenario = "SR-1B" Then first = "fog" secnd = "nofog" Else: foginSpeechP = "NOT A REAL SCENARIO in foginSpeechP" End If If (IsNumeric(ActiveCell.Offset(0, 4)) And ActiveCell.Offset(0, 4) > 0) […]

通过自动化打开Excel时,Excel UDF不可用

在使用自动化启动Excel时,我遇到了在Excel中使用Excel UDF类的问题。 当我从第三方应用程序启动Excel时,我正在写一个插件,需要这个插件。 这是我的理解,这是通过devise,但我需要有一种方法来使我的UDF可供用户通过自动化打开Excel时。 我为Excel 2007创build了一个VSTO插件和UDF类。我复制了代码,并按照所写的内容按照来自此网页的说明进行操作,除非我按照指示更换了GUID。 http://csharpramblings.blogspot.ca/2011/09/communicating-between-vsto-and-udfs-in.html 当我打开Excel时,我看到了我的新加载项,UDF显示在函数列表(插入函数)中。 所以我知道这是工作。 然后我创build了一个使用Excel自动化来打开Excel的应用程序。 这是一个Windows窗体应用程序,我把一个button放在Form1上。 我添加了一个对Microsoft.Office.Interop.Excel(版本1.6.0.0)的引用,它解决了(在我的机器上)到C:\ Windows \ assembly \ GAC \ Microsoft.Office.Interop.Excel \ 12.0.0.0__71e9bce111e9429c \ Microsoft。 Office.Interop.Excel.dll 我从http://support.microsoft.com/kb/302084获得了下面的代码,虽然我删除了一些将数据放入工作表单元格的代码,因为我不需要它 – 我只想要一个打开Excel的例子使用自动化。 我的示例程序的Form1的C#代码: using System; using System.Reflection; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel; namespace ExcelAutomationTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void […]