Tag: 语法

和在Excel中的function?

我需要检查A是否超过200,如果B超过150,如果是这样的话,结果应该是真的。 然而,如果A正好是200,那么B就超过100就必然导致真实。 简而言之 A>200 AND B>150 = True 但如果 A=200 AND B>100 = True A=200 AND B<=100 = False 我自己尝试过,但是我被困住了,我的大脑无法处理所有的嵌套,我想我错过了一些简单的东西,我也认为我使用的语法是不正确的,但是我想到了到目前为止是: =IF(AND(A>200;B>150;OR(AND(A=200;B>100);"True";"False")

什么是子查询的Microsoft Query语法?

我想在Microsoft Query中做一个简单的子查询连接,但我无法弄清楚语法。 我也找不到任何文档的语法。 我将如何在Microsoft Query中编写以下查询? SELECT * FROM ( SELECT Col1, Col2 FROM `C:\Book1.xlsx`.`Sheet1$` ) AS a JOIN ( SELECT Col1, Col3 FROM `C:\Book1.xlsx`.`Sheet1$` ) AS b ON a.Col1 = b.Col1 是否有Microsoft Query的官方文档? 谢谢!

运行时错误“1004” – 对于VLOOKUP

我试图build立一些双VlookUp的VBA代码,但我得到了运行时错误“1004”:应用程序定义或对象定义的错误。 这个目标是: 我从客户那里收到一个.csv文件,其中包括: Login Name eMail , Card Number , Host Login等。我将.csv文件加载到工作表“数据”中,然后运行一个查找程序将数据复制到工作表“用户”。 由于客户永远不会以相同的顺序构build.csv文件,因此我无法创build具有固定列号的vlookup以复制到工作表“用户”。 我正在使用的代码: Sub browseFileTest() Dim desPathName As Variant Dim DestCell As Range Dim iemail As Integer Dim PosEmail As Integer Dim icard As Integer Dim Poscard As Integer Dim ihost As Integer Dim Poshost As Integer Dim iemailD As Integer Dim PosEmailD As […]

具有OR,IF和多个条件的Excel SUMIFS

我遇到使用SUMIFS的问题。 我有列成本,频率,间隔和月,其中频率是一个string(“每月”,“每年”,“其他”,“一次”),其他都是数字。 我正在尝试做一个SUMIFS,根据不同的频率值来计算成本,并且有这样的东西: IF(mod(month,interval)= 0,“other”),IF(mod(month,12)= interval,月=间隔,“一次”)) 换句话说,如果freq = monthly,sum; 如果freq =年,mod如果为真,则为sum; 如果freq = other,则mod如果为真则为sum; 如果freq =一次,那么sum = month = interval。 谢谢!

bstrProgId作为string结尾的“.1”是什么意思?

当dynamic创build一个用户窗体布局,同时添加控件,我发现语法需要在bstrProgId的末尾“.1”作为string在下面的代码位: For loopthroughsteps = 0 To 0 For foodgroup_id = 0 To 6 'For vit = 2 To 18 For vit = 2 To 3 Dim listbox As Object Set listbox = UserForm3.Controls.Add("Forms.Listbox.1", foodgroup_id & "-" & vit & "-" & loopthroughsteps, True) With listbox .Left = 35 * (vit – 1) + 205 * […]

在vba excel中的userform中dynamic读取dynamic命名的文本框的语法?

我dynamic地创build一个名为UserForm1的用户表单。 其中,我生成的文本框,将由用户手动填充。 之后我想阅读他们的价值,但我不知道如何调用(的价值)的文本框。 以下代码用于创build和命名文本框: With UserForm1 'scaling userform .Height = max_width .Width = 600 End With For test1 = 1 To nr_of_zeros + 1 'create textboxes Set ctextbox = Controls.Add("forms.textbox.1", test1) 'creating textbox With ctextbox 'scaling textbox .Height = 20 .Width = 40 .Top = 40 + 25 * test1 .Left = 400 End With […]

“不包含”functionVBA

我正在寻找一种方法来添加一个“不包含”标准的string。 我希望它find一个数字string,长度为9个字符,不包含句点“。”。 我在网上看过,但只是find整个工作表或filter或数组的filter,而不是不包含一个特定的字符。 这部分工作: If IsNumeric(Left(Right(wordDoc.Paragraphs(j).Range.Text, 11), 10)) _ And Len(Left(Right(wordDoc.Paragraphs(j).Range.Text, 11), 10)) = 9 Then 但我想说的是: If IsNumeric(Left(Right(wordDoc.Paragraphs(j).Range.Text, 11), 10)) _ And Len(Left(Right(wordDoc.Paragraphs(j).Range.Text, 11), 10)) = 9 _ and Doesnotcontain "." Then 什么才是正确的语法? 谢谢!

当我尝试在VBA中设置variables的值时,为什么有时会出错?

理解VBA中的variables是如何工作的,我有点麻烦。 有时当我尝试将一个值放入variables时,我会遇到错误。 例如: Sub test3() Dim myvar2 As Integer 'Does Not work — Type Mismatch Error 'myvar2 = [D1:D10] 'Works 'myvar2 = Range("D4") 'myvar2 = Range("D4").Value 'myvar2 = Evaluate("SUM(D1:D10)") MsgBox (myvar2) End Sub 仅供参考D1:D10中的值都是整数,所以我不知道为什么我会得到这种types的不匹配错误。 评估(“SUM(D1:D10)”)相当于[D1:D10] ..那么为什么一个工作,另一个不工作? 我显然刚刚进入VBA …所以也许这是一个罕见的情况….我所有的其他麻烦是因为我试图使用.Value之后,是不是一个对象。 我已经观看了很多关于variables的video,但是没有一个能回答我的问题。 tl; dr — myVar =(我可以放在这里/不要把这个值存储为一个variables)

这一个月正确的使用和替代品,如果有的话

下面的代码在我input月份名称时起作用。 但是,我需要它来find当前月份的文件夹,避免每个月更新代码。 我对ThisMonth的使用在另一个macros中很好用,但是在这里不起作用。 我相信我错误地运用它。 任何洞察力是赞赏。 Sub JoinPathParts() Dim pathParts(1 To 5) As String Dim path As String pathParts(1) = "H:" pathParts(2) = "Rejects" pathParts(3) = "2017" pathParts(4) = "" & ThisMonth & "\""" pathParts(5) = "FileName*.xlsx" path = Join(pathParts, "\") Application.Workbooks.Open (path) Call AddAsLastWorksheet End Sub

语法选项在Excel的VBAmacros中创build错误

在编写Excel的VBAmacros时遇到语法选项问题。 在VBA中,可以通过两种不同的方式调用对象的方法: foo.bar(arg1, arg2) 要么 foo.bar arg1, arg2 我绝对厌恶第二种语法,因为我觉得它没有任何的清晰度,所以我通常坚持第一种select。 但是,我遇到了使用第一个选项创build错误,而第二个执行正常的情况。 (这也许是我的代码中的其他问题的一个指标。)这是罪魁祸首的代码: Function GetFundList() As Collection Dim newFund As FundValues Range("A5").Select Set GetFundList = New Collection While Len(Selection.Value) Set newFund = New FundValues ' I set the fields of newFund and move Selection 问题在于下一行: GetFundList.Add newFund Wend End Function FundValues是我创build的类,基本上只是一个结构; 它有三个属性在循环期间被设置。 基本上,当我调用GetFundList.Add(newFund)出现以下错误: 运行时错误“438”:对象不支持此属性或方法 但是调用GetFundList.Add newFund是完全正确的。 有没有人了解VBA的错综复杂,足以解释为什么会发生这种情况? […]