我想采取用户input,并在公式中插入它。 input框将有一个帐户名称,月份,types的字段。 这个variables需要返回sumifs公式sumifs , column E是这个帐户column c是这个月, column d是这个types。 我看了,但我发现所有涉及numbers inputsless得多的text string作为sumifs公式中的variables返回。 公式例如: =SUMIFS(E2:E100, A2:A100, "Account Name",C2:C100,"Month",D2:D100,"Type")
我希望这里有人能帮助我。 我正在尝试创build一个macros来查看单元格中的单元格,以查看该单元格是否具有公式。 如果它有一个公式,它会在不同的工作表的同一个单元格中input1,如果不是,则input0.这是迄今为止我所知道的,但它给了我一个编译错误:接下来没有for。 Sub FormulaMap() Dim r As Integer Dim c As Integer For c = 9 To 17 For r = 11 To 18 If Sheets("Data").Cells(c & r).HasFormula = True Then Sheets("Map").Cells(c & r).Value = 1 Else: Sheets("Map").Cells(c & r).Value = 0 Next r Next c End Sub 任何帮助表示赞赏。
我已经find了在“主”选项卡中创build和命名新选项卡的代码,但是我还需要在每个新选项卡的单元格中填充名称。 此外,我需要每个新的选项卡包含一个模板(不同于主选项卡),这只是一个空白表与标题和一些公式内置到一些列。 每个新选项卡都应该有完全相同的模板,但只有一个单元格(表格的标题)被填充以匹配选项卡的名称。 最后,我需要用户打开工作簿,填写主选项卡中的列表(不一定总是相同的长度,可能只是1),然后按下button(运行macros),并使选项卡根据上述创build。 看来,也许我需要创build一个隐藏的选项卡,其中包含要复制的模板? 这可能吗? 任何指导在这里将不胜感激。 谢谢!
我试图在Excel VBA中创build一个简单的循环来抓取行中的信息,并根据特定单元格上的值将同一信息复制到下一行(或插入一个新行)。 例如,第1行有这些值(房屋1a,3级) 然后像这样在单元格H5上创build结果 (house 1a, bottom level) (house 1a, mid level) (house 1a, top level) 意味着房子1a的每一层被分成3排。 那么想象一下,我会随机选出10个不同级别的房子,名单不超过3个。 抱歉的括号,但这个编辑一直在想我正在写代码。 任何帮助将不胜感激。
目前我正在开发一个使用VB.NET 2010和VSTO的Excel 2010插件。 活动工作表有一个button,其单击事件将由其自己的VBA代码处理。 现在我想在Addin中处理相同的button单击事件,而不影响其原始的VBAfunction。 可能吗? 我怎样才能做到这一点? 这个任务的前提是在Excel模板(包括VBA代码)上不允许修改任何内容。 这就是为什么我尝试从VB.NET的事件处理。 触发点在于Excel模板中的button被点击了,那么肯定会引发一定的事件,这个事件肯定会被VBAmacros处理,但是我想在VB.Net中增加另一个监听器(事件处理程序)同样的事件,所以我可以做一些额外的任务。 有没有人知道如何添加这样的事件处理程序? 谢谢。
我希望你能帮助,因为我已经耗尽了我所知道的一切。 基本上我有一个VBAmacros在Internet Explorer上执行一些自动化操作,以使用SendKeys从我们的内部站点获取一些报告,在此macros中我也试图复制网站的URL,以便在电子表格中创build一个超链接。 现在起初,我使用SendKeys导航到地址栏,并使用SendKeys "^c", True将它复制,然后将其粘贴到我的电子表格中,但我决定要在全屏模式下运行自动化,以便我在通过网站进行填写时可以忽略地址栏和collections夹栏。 然而,当运行全屏模式,我无法导航到地址栏,所以我决定使用IE.LocationURL来获取页面的URL,但是当我将它分配给一个variables或将其放入一个单元格,它只返回部分URL。 该网站即时通讯设法访问在URL中有一个#(对不起,这是一个机密的网站,所以我不能把它放在这里,但它是在格式www.something.com/somethingelse/#thisBitWontDisplay …..)。 #之后的所有东西都不会出现。 我知道IE.LocationURL正在工作,因为当我在VBA编辑器中的本地variables位查看它显示IE.LocationURL的值是正确的URL,但就是这样,我可以访问其余的URL。 我试图格式化IE.LocationURL的输出,也是variables,但它不会工作。 有什么build议么? 谢谢
当我的工作簿受到保护时,下面的代码不起作用(当没有任何东西被保护时,它可以工作)。 我想要做的是有一个工作簿和表保护,除了less数几个单元格和特定的数据后,我希望所有单元格保护,请帮助。 Sub Workbook_Open() If Date >= DateSerial(2016, 1, 19) Then Worksheets("Jan").Protect Password:="123" ElseIf Date >= DateSerial(2016, 2, 28) Then Worksheets("FEB").Protect Password:="123" ElseIf Date >= DateSerial(2016, 3, 31) Then Worksheets("MAR").Protect Password:="123" ElseIf Date >= DateSerial(2016, 4, 30) Then Worksheets("Apr").Protect Password:="123" End If End Sub
我比较这样的两个范围: Set cell1 = SampleFeature.Cells(row, column) Set cell2 = TestFeature.Cells(row, column) If cell1.value <> cell2.value Then DoSomething() End If 我有两个范围,在即时窗口中显示这些值: ?cell1.Value 0.45 ?cell2.Value 0.45 ?cell1.Value=cell2.Value False ?cell1-cell2 -5.55111512312578E-17 所以这很明显是一个浮点精度问题。 我的问题是,如何更改cell1.value <> cell2.value比较,以便它使用输出cell1.value时给出的精度,而不是“真正的”浮点值? 编辑:对不起,忘了提及这个检查也用于比较string。
此代码在一张纸上工作,现在我试图让它在多张纸上工作,避免前两张(“AA”和“字频率”) 。 原始代码在这里 (见@ Jeeped的答案) 链接到工作表在这里 正在尝试从我find的相关线程调整代码(参考1,2 ),但是我不知道如何(和是否)将Ws.Name和Ws.Range对象应用到我现有的代码中。 它看起来像代码激活Sheet1使用With Worksheets("Sheet1") ,我试图用以下方法replace: 创buildFor循环函数byGroupCounter()以确定有多less工作表,并在所有现有的工作表中运行。 每个工作表将增加variables“我” For循环inGroupCounter()调用函数byGroup(i)在选定的工作表(即工作表“ i ”)上运行原始代码 byGroup()函数在工作表i上运行它的过程。 部分我相信我得到一个错误:replaceWith Worksheets("Sheet1")代码With Ws Ws = Worksheets(Sheet_Index)和Sheet_Index等于我 ,从byGroupCounter() 我相信我必须在.Range前添加Ws前缀,但是我一直在尝试的一切,我总是收到错误“无法在中断模式下执行代码”。 当前代码: Sub byGroupCounter() Dim i As Integer Application.ScreenUpdating = False For i = ActiveSheet.Index To Sheets.Count byGroup i Next i Application.ScreenUpdating = True End Sub Sub byGroup(ByVal Sheets_Index As Integer) […]
目标 将列从一个工作表复制到另一个工作表。 问题和例子 我想复制一列从S1到S2,但我想粘贴从第二行开始。 我可以把它复制到第一个单元格/行,但不是第二个。 代码示例适用于前四行,但是当我将B1更改为B2时,它未能尝试添加一个范围,但无济于事。 码: Dim s1 As Worksheet, s2 As Worksheet Set s1 = Sheets("BatchData") Set s2 = Sheets("Portal_Aligned") s1.Range("A:A" & LastRow).Copy s2.Range("B1") s1.Range("A:A" & LastRow).Copy s2.Range("B2:B" & LastRow) 参考: 如何select第二行到最后一行的范围