Tag: vba

Excel VBA IF语句:检查值列表

我正试图写一个像这样的IF: if var [is any of 1,4,5,6,12] then do stuff 但是我不知道这个在VBA中的语法,除了: if var=1 or var=4 or var=5… 这似乎有点笨拙。 任何帮助,将不胜感激 谢谢!

采取两列数据并转换为字典最简单的方法是什么?

我有一个工作表,列A和B中的数据。 我正在寻找一种方便的方法来获取这些列,并将其转换为 A列中的单元格是键和B列是值的 字典 ,如下所示: Dim dict as Dictionary Set dict = CreateDictFromColumns("SheetName", "A", "B") 注意:我已经引用了脚本dll。

在退出我的子程序之前,是否应该再次打开.CutCopyMode?

为了优化我的代码,我closures了几个Application Object成员属性; 其中一个特别是.CutCopyMode属性 。 Sub MyProcedure() With Application .ScreenUpdating = False .EnableEvents = False .CutCopyMode = False End With ' lots of code here 我应该再次打开.CutCopyMode(例如True)与他人之前,我的子完成? ' lots of code here With Application .ScreenUpdating = True .EnableEvents = True .CutCopyMode = True '<~~ ??? End With End Sub

使用Excel VBA基于每个单元格中的值的Autoformat行?

我有Table1 A列有一个例如30/5/2017的date B栏的状态是“成功” C列的值为500 要求:在单元格更改时,在VBA中应用自定义条件格式 假设这个变化发生在第5行的列A,B或者C中 无论在列A,B或C中是否发生更改,都应该执行相同的逻辑。 如果列A的值小于Now(),那么第5行应该是红色背景和白色文本。 不应该进一步检查。 否则如果列B是“成功”,那么行5应该是绿色背景和白色文本。 不应该进一步检查。 否则,如果列C的值小于500,则第5行应该是蓝色背景和白色文本。 不应该进一步检查。 下面的VBA代码是检查单元格上的变化 – 它使用超链接在列b中自动格式化单元格。 我现在需要的是根据上面的标准自动填写整行。 Private Sub Worksheet_Change(ByVal Target As Range) If ((Not Intersect(Target, Range("B:B")) Is Nothing) Or (Not Intersect(Target, Range("F:F")) Is Nothing) Or (Not Intersect(Target, Range("G:G")) Is Nothing) Or (Not Intersect(Target, Range("I:I")) Is Nothing)) Then End If End Sub

如何在文本input期间在Excel中自动调整列宽

我通常尽量避免在Excel中使用VBA,但是能够将文本input到单元格中,并使其列变宽或变窄以容纳input或删除的文本。 这当然会受到列中其他单元格中文本长度的影响。 “自动适合你键入”,我想你可以称之为。 有一个简单的方法来做到这一点在适当的处理程序?

从VBA代码中检查Excel单元格中的#N / A

我正在遍历一系列的小数位数为2的数字。 我需要检查单元格是否包含'#N / A',如果是,我需要跳过它。 问题是,当一个单元格拥有一个有效的数字时,我的if条件将抛出一个'types不匹配错误'。 我怎样才能避免这一点? If (ActiveWorkbook.Sheets("Publish").Range("G4").offset(offsetCount, 0).Value <> CVErr(xlErrNA)) Then 'do something End If

excel vba:使string粗体的一部分

我有excel包含这样的条目的单元格: name/A/date name/B/date name/C/date 单元格内容显示在同一单元格的多行上。 我想只为所有参赛作品“大胆”。 我logging了一个macros,我认为解决scheme必须是这样的: ActiveCell.FormulaR1C1 = "name/A/date" & Chr(10) & "name/B/date" & Chr(10) & "name/C/date" With ActiveCell.Characters(Start:=25, Length:=4).Font .FontStyle = "Bold" End With 我不知道如何获得每个条目的起始值和长度。 任何人有一个想法?

我得到“编译错误:找不到项目或库”在一些Excel 2010版本中。 很难testing这个

我的客户正在收到编译错误; 无法find他的Excel 2010版本上的项目或图书馆,但我没有得到2010年的版本。我怎样才能调整这个代码,所以它不会出现。 当错误出现在下面的代码中时,“选中每个单元格”中的文本“单元格”高亮显示: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$9" Then Columns("D:CB").Select Selection.EntireColumn.Hidden = False Application.ScreenUpdating = False Sheet17.Range("E48:CB48").Select For Each cell In Selection If cell = 0 Then Range(cell.Address).EntireColumn.Hidden = True End If Next Application.ScreenUpdating = True Sheet17.Range("b9").Select End If End Sub` 我的客户还在下面的代码中报告了一个错误,其中“Response”字样被突出显示。 这对我来说也不是问题,在我的Excel 2010版本中,任何和所有的帮助都是非常感谢的。 If Sheet1.Range("E18") = 3 Then […]

插入Excel VBAstring

在JAVA或C ++中,我们可以沿着myString.insert(position, word)的行来做一些事情。 有没有办法可以在Excel VBA的string中做同样的事情? 在我的工作表中,我有一个string看起来像这样: 01 / 01 / 995 ,我想插入一年1,所以使它01 / 01 / 1995 。 Dim test_date As String test_date = "01 / 25 / 995" test_date = Mid(test_date, 1, 10) & "1" & Mid(test_date, 11, 4) 有没有更简单/更优雅的方式来做到这一点?

使用ActiveWorkbook.FollowHyperlink在Excel中打开网站

所以,这基本上是我想要做的。 我从MSSQL生成的文件中有一列雇员#。 我想创build一个函数在URL的单元格, http://www.someplace.com/employee.php?ID=Employee#FromCell 到目前为止,我发现的所有例子都不够详细,我不知道如何处理它。 我知道这是不正确的,但这是我到目前为止 Function openurl(strSKU As String) ActiveWorkbook.FollowHyperlink Address:="http://www.someplace.com/employee.php?ID=?strSKU=" & strSKU, NewWindow:=True End Function 我想我正在将函数与函数混合在一起,但我不确定该怎么去做。 我基本上想添加它作为一个function,使其更容易插入列。