Tag: 函数

使用AND / OR进行Excel嵌套IFfunction

我已经绑定了很多AND / OR函数的组合,并没有运气。 这是我需要创build的: 在B栏中,我有公司ID,范围从两个数字字符到六个数字字符。 在B列中的每个公司ID之前,我需要每个字母“I”和一定数量的零。 所以如果公司ID有两个数字,我需要在列B中的公司ID的左边加上“I0000”,所以最终的结果是“I0000 ##”,共有七个字符。 – 如果公司ID有三个数字,我需要在列B中的公司ID左边加上“I000”,所以最终的结果是“I000 ###”,共7个字符。 等等,所以第四4,5和6字符的公司ID(我最大的公司ID是6个字符,所以它只需要添加字母“我”)) (len(b2 = 6),concatenate(“I”,B2),IF(len(b2 = 5),concatenate(“I0”,B2),If(Len- ——–你明白了,这并不美丽,只给我所有的公司ID加了一个“I”。 我意识到这将需要使用或(或)(function,我试图写它无济于事,我是一个视觉学习者,并不意味着任何人读这个,但如果它不多麻烦它真的会帮我看到写出来的实际function,所以我可以把它比作我不正确的function,看看我的错误。 只要把我指向一个关于AND / ORfunction的excel培训网站就不会帮助我。

将特定值复制到单独的列

我有一个6列A,B,C,D,E,F,G的Excel表 本表简要介绍了州和城市。 我的问题是,列C (地区)包含国家和城市的名称。 每当显示一个国家的名字时,城市就会在这个同一栏目下面。 列E包含值状态或城市 。 如果列C值名称为状态 E有价值的状态 ,如果它有一个城市的名称 E有价值的城市 我想要的是每个城市都有一个单独的列: Statename 。 我正在寻找一个函数,当E有值状态时 , C '中的值将被复制到每个城市名称后面的单独的列状态名

打印机处于活动状态时,仅使用registry设置默认打印机VBA

我使用Leith Ross的VBA代码循环浏览机器/networking上的打印机,并select与我作为默认打印机传递的参数相匹配的打印机。 见下文: Function FindPrinter(ByVal PrinterName As String) As String Dim Arr As Variant Dim Device As Variant Dim Devices As Variant Dim Printer As String Dim RegObj As Object Dim RegValue As String Const HKEY_CURRENT_USER = &H80000001 Set RegObj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") RegObj.enumvalues HKEY_CURRENT_USER, "Software\Microsoft\Windows NT\CurrentVersion\Devices", Devices, Arr For Each Device In Devices RegObj.getstringvalue HKEY_CURRENT_USER, […]

连续循环刷新公式

我有一个使用= Files作为命名范围的工作表(所以我可以看到文件夹中的文件,然后我有一个MOVEbutton,可以将文件从一个文件夹移动到另一个文件夹当我点击命令button,我告诉它执行移动和 ActiveSheet.EnableCalculation = False ActiveSheet.EnableCalculation = True 哪个工作太棒了。 唯一的是只有当我点击移动button时才更新我的文件列表 无论如何有这个function在任何时候工作? 没有点击一个button…..所以只要文件是打开的,它总是执行刷新。 理想情况下,我可以告诉它每X秒做一次……但这不是必要的。

从另一张表中评估公式作为当前工作表

我试图使用Eval()来获取存储在Main上的一些函数,并使用Sheet2中的值对它们进行评估。 到目前为止静态引用主要和纯文本的工作,但我有麻烦引用相对单元格。 理想情况下,主工作表结合了静态和相对引用,并将列下的函数应用于表中的行(在本例中为A7,A8 …)。 单引号是为了形成SQL。 这是我试图实现的function之一。 =CONCATENATE(Main!$B$30, "'", A7, "', '", B7, "', '", C7, "', '", D7, "', '", E7, "', '",F7, "', '",G7, "', '",H7, "', '",I7, "', '",J7, "', '", K7, "', ",$B$4,Main!$B$35) 我认为这个问题出现在我的Eval函数中,它不会将A7作为活动工作表中的单元格值进行计算。 我正在研究一种方法来改变function像CurrentSheet!A7,但找不到正确的语法。 Function Eval(Ref As Range) Dim shCurrent As Worksheet: Set shCurrent = ActiveSheet Application.Volatile Application.ThisCell.Parent.Activate Eval = Application.ThisCell.Parent.Evaluate(Ref.Formula) […]

有没有办法将循环代码放入一个函数中,由VBA中的多个子集调用

我在excel中创build的表中有许多不同的类别。 每个子都有自己的数据,它从各种平面文件中提取,但是它们都有相同的结果,根据它在行和列中alignment的类别头将每个值放入特定的单元格。 所以,一开始就是if语句。 有没有办法把这个代码块放在一个单独的子函数或函数中,并且在每个子函数中只有一个调用,这样我就不必经常input/如果我想改变它,我会只需要在一个地方改变它? 这是一个代码示例: 这部分是在每个子的开始,并根据行标题进行更改 Sub calccategory() For k = 1 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row If Cells(k, 4) = "row 1" Then 这部分是我想放在一个函数或子函数中的部分,因为每次都是一样的 Dim CWS As Worksheet Workbooks(ThisBook).Activate For j = 5 To 15 For g = 1 To ActiveSheet.Cells(3, Columns.Count).End(xlToLeft).Column If Cells(3, g) = "col1" Then With Range(Cells(k, j * 4 + 2), Cells(k […]

将NOW()作为Excel自定义函数中的parameter passing给了#VALUE! 错误?

我在Excel中有一个自定义函数,它处理作为参数传入的date。 它正常工作正常,但如果我直接通过NOW()作为参数,它会导致#VALUE! 错误。 但是,如果我把NOW()放在一个单元格中,并将其作为parameter passing给它。 我已经在Excel 2007和Excel 2016中尝试了这一点,他们都有相同的结果。 我做了一个简单的函数来突出显示(而不是我原来的function): #值! 错误 更令人困惑的是,如果我在代码中放入一个Stop,并且通过它,NOW()的值确实会被传入,函数将正确运行。 但在电子表格中,它仍然显示为#VALUE! 错误。 传入的价值 有谁知道为什么发生这种情况,并使其工作? 就像我说的,我知道我可以添加一个= NOW()列,并使用该单元格作为参数,但我希望能够做到这一点,而不需要额外的步骤。

在Excel中创build自定义查找函数时遇到问题。 发布匹配和级联范围

我在使用我的大型电子表格时遇到了一些麻烦。 我将大量原始数据引入数据表中,然后在数据中进行一些查找。 使用内置的函数,我想出了 =IF(ISNA(INDEX(Data!$L$7:$L$1100,MATCH(Data!$I$2&$B$199&$B29&Data!$J$5,Data!$K$7:$K$1100&Data!$J$7:$J$1100&Data!$I$7:$I$1100&Data!$N$7:$N$1100,0))),"0",INDEX(Data!$L$7:$L$1100,MATCH(Data!$I$2&$B$199&$B29&Data!$J$5,Data!$K$7:$K$1100&Data!$J$7:$J$1100&Data!$I$7:$I$1100&Data!$N$7:$N$1100,0))) 不漂亮! 基本上,它执行相同的查找两次取4个variables,并将它们与4个连接的数组进行匹配,然后将该点用作我想要的值的索引。 我有8个这种(略有不同),每行4张,每张96行。 编辑它们是一个痛苦! 由于本月数据量增长巨大,外频(x1100)已经超过(吸取的教训,大的是永远不够的)。 不幸的是,函数的局限性不会让我使用L:L或者其他任何有用的东西。 我已经尝试将代码重写为用户定义的函数,在那里我可以提供4个variables,并得到答案,但是在组合数组时却不幸失败。 我已经给出了原来的函数名称上面列出的范围,使事情变得更容易(并扩大了他们使用更广泛的范围值),所以我可以重写所有的函数只使用命名的范围,但这仍然留下我的卡住如果我需要更改代码。 以下是我到目前为止: Function Windows_Util(itma As String, env As String) v = "Windows Server" & env & itma & "" r = Concat(Range("Utilchassis")) r = r & Concat(Range("Utilenv")) r = r & Concat(Range("UtilITMA")) r = r & Concat(Range("UtilOS")) m = WorksheetFunction.Match(v, r, 0) i = […]

Excel 2003 – ADDRESS()函数问题

我终于想到我已经find了一种能够高效地使用excel的方法,但是我遵循的代码似乎并没有工作。 我在想,代码是非常有限的,不能做我想要的,但我想我会要求确认 – 也许这是我的function,这是问题。 我想根据我们到这个月的几天来计算上一个月的一排价值的总和(即,这是四月二十日,所以我想总结三月的前20天与之比较)。 =SUM(G4:ADDRESS(ROW(),7+$BR$3,4)) 我基本上想要SUM(G4:AA4),并使用地址函数返回单元格参考AA4采取G4和加上20的列数。 ADDRESS(ROW(),7+$BR$3,4) 这成功地返回AA7如预期但是,当我尝试在SUM()函数中使用返回值时,它会引发错误… 我是否无法在计算中使用这个参考?

Microsoft Excel将函数放在IF函数中

我在写IF函数,其中一个[If_value_False]插槽需要是一个随机函数。 它工作正常,但一旦随机公式发布,细胞dosn't随机化,IF函数的行为,如果任何在值true必须是文本,而不是forumla。 这是我得到的function: =IF(ISBLANK(A2),"","=rand()") 如果A2是空白的,那么这个函数在放置的时候应该保持空白。如果A2不是空白,它应该添加一个随机函数。 这工作到那里。 单元不遵循=RAND()函数。 我怎样才能解决这个问题?