我正在用VBA编写一个函数,以便在excel公式中使用,如果我的函数返回一个值是可以的:
=MYVALUE(A1)
现在我编写了另一个函数,它返回Array(1,2,3,4,.)我将excel公式替换为Array公式:
{=MYARRAY(A1)}
但是,当我扩展公式时,所有单元格都会显示数组的第一个值。为什么?
下面是我的VBA源代码(complement.xlam):
Function MYVALUE(x as integer)
MYVALUE = 123
End Eunction
Function MYARRAY(x as integer)
MYARRAY = Arra
我在Excel中有一张A1:A5的表格
a
a
b
a
b
我希望使用Excel函数而不是VBA找到值a的第n行。
如果我把1加入这个函数,我想得到1。
如果我把2加入这个函数,我想得到2。
如果我在这个函数中加入3,我想得到4
一个可行的解决方案是将下面的公式=COUNTIF($A5:A5,"a")添加到B1中,然后将其拖到B5中。
然后,我可以使用=MATCH(C1,B1:B5,0),其中C1保存变量n。
然而,是否有一种更整洁的方式而不必添加额外的列?
我需要在一个用逗号分隔的单元格中分割一些数据。我知道这可以是从文本到列excel函数,但我需要它在VBA中,因为这个过程必须是自动的。我创建了这个函数:
Function SepararDatos(splitVal As Variant)
Dim totalVals As Long
splitVal = Split(splitVal, ",")
totalVals = UBound(splitVal)
Range(Cells(ActiveCell.Row, ActiveCell.Column + 1), Cells(ActiveCell.Row, ActiveCell.Col
我是一个Excel VBA新手。
如何通过自定义函数修改指定单元格的值?这段代码有什么问题:
Function Test(ByVal ACell As Range) As String
ACell.Value = "This text is set by a function"
Test := "Result"
End Function
我的愿望是。当我在单元格E1中键入=Test(E6)时,Excel将在E6中显示指定的文本。
我将展示一个人为设计的例子,所以请耐心等待。
我们的产品使用CSV文件作为过渡数据,在Excel用户界面之间发送数据,使用Java程序操作并将其传输到SQL后端。我们有一个VBA脚本,它按以下顺序处理所有Excel工作:
将所有8个CSV文件加载到单个Excel文档中的8个工作表中。然后对批量数据进行迭代,执行以下操作:
'Loop over data:
Dim r As Range
...
r.NumberFormat = "General"
r.Formula = r.Formula
'End loop
这会导致整个工作表填充
我在将Excel中的变体粘贴到指定范围时遇到问题。下面有下面的代码,但是整个范围的[E1:E15]输出为0。我想看到的是从1到15。
我无法找到这个特定问题的解决方案(部分原因是我无法识别这个问题被定义为使用Excel术语)。对于这个特定代码的任何帮助,或者在VBA中以更自然的方式完成这一点,都是非常感谢的。谢谢!
Sub TEST()
Dim SIZE As Integer
SIZE = 15
Dim VECTOR() As Integer
ReDim VECTOR(SIZE)
Dim i
For i = 1 To SIZE
VECTOR(i) = i
Next i
[
关于Excel/VBA,我尝试使用VLOOKUP来解决这个问题,但是在某些情况下,它可能没有返回正确的值。假设我在Excel中有以下列表
Country Years
Germany 63
Germany 27
Germany 29
France 45
在另一个工作表中,和有一个下拉列表,其中包含了法国和德国。我想找到一个能找到我所选择的国家的最低年数的函数。在标准函数VLOOKUP中,我只得到德国的63,而尝试在MIN中烘焙也不起作用。有任何方法可以创建我自己的函数(在VBA中)来完成我所描述的吗?
是否有可能在VBA中为excel编写一个公式,使公式中有"n“项,并且随着"n”值的变化而改变术语的数目?
例如,假设您希望对单元格a1进行编码,使其成为a2和a3之和。然后,您希望b1是b2、b3、b4、b5等的总和,这样,每个单元格范围内的每列1行1单元格都是"n“单元格以下的"n”单元格之和,其中“n”随列而异。假设要使用的所有单元格地址都是已知的,并存储在数组中。
下面是一些代码,以更好地解释我的要求:
For i = 0 to n
Range(arr1(i)).formula = "=" & range(arr2(i)).
我试图在VBA中编写一个简单的函数,它以一个日期和一个来自Excel的日期数组作为输入。如果给定日期是数组的一部分,则返回true,否则返回false。
我的问题是来自excel的数组是二维的,但是我总是传递一个一维数组。换句话说,一个列和一个行值,这样我就可以检查数组中的值了,但是我传递了一个一维数组。
这是我的代码:
Function IsInArray(ByVal MyDate As Date, ByRef Holiday_Calendar As Range) As Boolean
Dim length As Integer
length = WorksheetFunction.Coun
我试图使一个句子自动的“金额”+日期“”。我可以用简单的Excel公式,但我不能突出显示“金额”和“日期”,这是公式的一部分。
我的公式是:
="The total price is " &TEXT(J5,"0.00") & " date today is " &TEXT(H3, "mm/dd/yyyy")
是否有代码/VBA函数可以绕过此问题?总量和日期交换每日,我只是需要它突出显示。如果唯一的解决方案是VBA代码,那么当我将Excel文件上传到google驱动器时,如何确保宏不会消失呢?