我有一个macros,可以让你用箭头键移动标记的单元格。 这是将其向下移动的代码 Sub MoveMarkedDown() Dim noDo As Boolean With myMarkedCell Select Case .Row Case Is >= 36 noDo = True Case 35 With .Offset(1, 0) If (.Interior.ColorIndex = 3) Or IsBlockCell(.Cells) Then noDo = True End If End With Case Else With .Offset(1, 0) If IsBlockCell(.Cells) Or ((.Interior.ColorIndex = 3) And IsBlockCell(.Offset(1, 0).Cells)) Then noDo […]
假设我的string是 my_string="MY PET IS CAT " 我也有一个数组 my_animals=Array ("CAT","DOG","LION") 由于数组中的一个string(CAT)存在于my_string中,所以我想让CAT在一个variables中。 我们怎样才能做到这一点?
所以我需要过滤除了一个之外的所有的值。 我使用了这部分代码,它显然会过滤一切,但“比利时”,但我需要在那里变化。 Dim myValue As Variant myValue = InputBox("Which country to exclude? ") Range("AB1").Select ActiveSheet.Range("$B$1:$BY$319696").AutoFilter Field:=27, Criteria1:="<>Belgium" 对于我在特定国家过滤的filter版本,variables工作得很好: Dim myValue As Variant myValue = InputBox("Which country to filter on: ") Range("AB1").Select ActiveSheet.Range("$B$1:$BY$319696").AutoFilter Field:=27, Criteria1:= _ myValue ActiveWindow.SmallScroll Down:=-30 那么为什么这不起作用: ActiveSheet.Range("$B$1:$BY$319696").AutoFilter Field:=27, Criteria1:= <>myValue 另外我不知道为什么它是这样的结构,它是从loggingmacros生成的,尤其是_ Criteria1:= _ myValue
我有一个工作簿与许多工作表,并进入一些我需要input一个值,如果前面的单元格匹配给定的string。 我的代码适用于我需要的工作表,但当它到达一些不需要的工作表(它们也有数据)时出错。 debugging器突出显示的行是For Each r In Intersect (ActiveSheet.UsedRange, Range("F:F")我是一个新手与VBA / Excel脚本。对不起,如果这是盲目明显,但我search的网站,不能find合适的答案,或者我只是不认识它。 Sub AllOnePool() Dim myStr As String Dim myPool As String Dim sh As Worksheet Dim xlCalc As XlCalculation myStr = InputBox(Prompt:="Input the Target Serial Number: eg 93127") myPool = InputBox(Prompt:="Input the Pool to Use: ") For Each sh In ActiveWorkbook.Worksheets sh.Activate For Each r […]
我有一个macros在工作簿的前面创build一个汇总表。 在工作簿中的工作表中创build和标记形状,然后将超链接添加到形状以redirect到这些工作表,但是,当我loggingmacros来完成此操作时,生成的代码为: ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:="" 在Excel中手动创build的超链接在录制macros时工作得很好,当将鼠标hover在其上时,显示文件path和“ – Sheet!A1”,但他们似乎并没有将链接位置添加到地址部分macros观。 有没有人知道应该在该地址部分链接到工作表的代码?
我想知道我如何访问VBA中的Windows用户名,我的意思是显示在下面这张图片上的用户名: 我给这个精度,因为我已经尝试使用Environ("Username") ,但是这给了login,我必须input来启动与我想要的名称不同的窗口。
我已经设置词典作为一个对象添加到该字典的几个项目,但它似乎区分大小写。 无论如何,我可以设置字典来识别不同的版本? 我的代码: Sub Test() Dim sheet1 As String Dim Dict As Object Dim c As Range Sheet1= "TEST" Set Dict = CreateObject("Scripting.Dictionary") Dict.Add "MIKE", 0 Dict.Add "PHIL", 0 Dict.Add "Joe", 0 For Each c In ActiveWorkbook.Worksheets(Sheet1).UsedRange If Dict.Exists(ActiveWorkbook.Worksheets(Sheet1).Cells(c.Row, c.Column).Value) Then Dict(ActiveWorkbook.Worksheets(Sheet1).Cells(c.Row, c.Column).Value) = Dict(ActiveWorkbook.Worksheets(Sheet1).Cells(c.Row, c.Column).Value) + 1 End If Next Sheet1.Cells(25, 3) = Dict("MIKE") […]
我注意到两者之间的一个区别是, Worksheet.Paste将复制对象(图表,button等),而Range.PasteSpecial xlPasteAll似乎并没有这样做。 还有其他的区别吗? 有什么不同的解释吗? 所以如果我想复制粘贴对象/控件和单元格,我必须做Worksheet.Paste ? 有什么恼人的是,你将不得不激活,并select目标单元格。 还是有更好的方法? 谢谢!
Str strTopLeftCellIdentifier = "Account No" 我只是跟踪我的代码触发error handling程序的原因。 这是没有更新strtopleftcellidentifier的价值。 显然,第一个Str不是在那里。 然而,它将运行这一线。 我知道Str()是一个VBA函数,但即使如此,我也不明白它是如何以任何可理解的方式来解释这条线的。 macros认为它在做什么和/或为什么它不会导致错误?
我在Excel VBA中使用Microsoft正则expression式引擎。 我对正则expression式很陌生,但我现在有一个模式。 我需要扩大它,我有麻烦。 这是我的代码到目前为止: Sub ImportFromDTD() Dim sDTDFile As Variant Dim ffile As Long Dim sLines() As String Dim i As Long Dim Reg1 As RegExp Dim M1 As MatchCollection Dim M As Match Dim myRange As Range Set Reg1 = New RegExp ffile = FreeFile sDTDFile = Application.GetOpenFilename("DTD Files,*.XML", , _ "Browse for […]