Tag: vba

VBA:退出时如果

好吧,可能是一个简单的,但我只是开始使用这种语言,在这段代码: While DATA.Cells(1, i).value & "" <> "" If InStr(DATA.Cells(1, i).value, columnName) > 0 Then column = i Exit While End If i = i + 1 Wend 它看起来不是使用Exit While的方式? 我应该怎么做呢?

在列表视图中更改date格式EXCEL VBA

我有一个列表视图,但是当macros启动时,它将date格式从“[h]:mm:ss”更改为常规。 我的代码说这个 itmX.SubItems(4) = Range("F" & i).Value itmX.SubItems(5) = Range("G" & i).Value itmX.SubItems(6) = Range("H" & i).Value itmX.SubItems(7) = Range("I" & i).Value 有什么方法可以解决吗? 为了得到格式“[h]:mm:ss”? 非常感谢你

下标超出范围/应用程序定义或对象定义的错误VBA

我刚才问了一个类似的问题,并认为我已经解决了我的问题,但由于某种原因,我试图在稍后运行它,同样的错误popup,即使它早早好。 无论如何,当我尝试运行这个代码时,我得到一个超出范围/应用程序定义的下标或对象定义的错误。 我正在试图find一个表格中包含“当前资产:”字样的单元格。 这是我的代码。 我觉得这个问题要么在我正在使用的“范围”中find。 Sub Valuation() Dim LastRow As Long LastRow = Worksheets("Sheet1").Range("A1").SpecialCells(XlCellType.xlCellTypeLastCell).Row Dim LastColumn As Long LastColumn = Worksheets("Sheet1").Range("A1").SpecialCells(XlCellType.xlCellTypeLastCell).Column Dim crntassone As Range Set crntassone = Worksheets("Sheet1").Range(Cells(1, 1), Cells(LastRow, LastColumn)).Find(What:="Current assets:", After:=Worksheets("Sheet1").Range(Cells(1, 1)), LookIn:=xlValue, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) 如果有人看到这个问题,将不胜感激。

VBA表格数据中的嵌套循环

我有一个非常彻底的search,但我仍然在这个问题挣扎。 基本上,我有一个各种标题的列表,其中每个标题有10个相应的variables,可能有也可能没有数据点。 我想循环遍历第一列,用循环遍历每一行的嵌套循环来计数和logging每个填充的数据点的数量。 大多数我不知道如何在第二个循环中引用单元格。 任何帮助将不胜感激!

VBA。查找,date,序列号date和数据types属性(.Text,.Value,.Value2)

使用Range.Find方法遍历一个范围内的每个值,看看它是否存在于另一个范围内。 问题是这两个范围的格式是不同的(但所有的值都是表面上的date),这导致了许多“错误的否定”(即值应该是时不匹配)。 是否有可能控制input和search范围的数据types,以便系统将比较苹果和苹果,并成功识别匹配? 这里是数据和代码: Sheet1 (custom format, "yyyy-mm-dd") A1 2016-01-01 A2 2016-01-02 A3 2016-01-03 A4 2016-01-04 A5 2016-01-05 Sheet2 (text format) A1 2016-01-01 A2 2016-01-03 A3 2016-01-05 Sheet3 (display as "yyyy-mm-dd") [NO DATA] Sheet4 (display as "yyyy-mm-dd") [NO DATA] 码: Sub FindTest() Dim inputRange As Range Dim searchRange As Range Dim found As Range Set […]

Windows(variables)。激活错误

Dim filepath As String filepath = ActiveWorkbook.Path + "\" Application.ScreenUpdating = False Dim file As String Dim fullfilepath As String file = Dir$(filepath & "*Example*" & ".*") fullfilepath = filepath & file Application.EnableEvents = False Workbooks.Open (fullfilepath) Windows(file).Activate Application.EnableEvents = True 用上面的代码,很高兴地填充文件path,相当高兴地find文件“New Example.xlsm”,并且fullfilepath也正确结束。 当它到达Windows(文件)。激活时,我得到一个下标超出范围的错误(甚至没有进一步之前) 这是明显的东西吗? 它在另一个我的编码例子。

在VBA中,是否可以select相对于dynamic范围的单元?

比方说,我把'Rng'设置为一个dynamic范围,比如(“A”&i),其中'i = 2',并且当满足某个条件时我增加1。 同时,我也设置'k = 2',并在另一个条件满足时增加k。 是否有可能编写一个命令,说:“如果……然后复制”的任何列'rng.offset(0,k)'的第一行的单元格恰好在那一刻? 把这个写成另一个Offset命令是很容易的,但是如果Rng的列和行正在改变,是否可以写一个复制这个最上面一行的命令呢? 提前致谢,

excel vb sum&copy range with criteria

我是新的Visual Basic的基础,需要一些帮助,因为一直在寻找通过networking,并不能找出什么是正确的编码。 我想总结第一个标准销售人员Robin&Ray从sheet2(数据范围)到sheet1的每日销售情况。 (1/1/1),但是不能复制B,C,D …的其余部分(2 / 1,3 / 1 …) 其次,如果我想添加状态的第二个标准,只拿起列C(sheet2)中的'活跃',什么是正确的代码使用? 任何人都可以指导我到正确的地方或编码? 非常感谢你的帮助。 谢谢 在这里input图像说明

删除SHAPES时出错

我的一段代码(删除工作表中的所有形状)突然开始发生错误 “对象不支持此属性或方法” 并突出显示行If Shp.Type = msoAutoShape Then这是我不断更新的大代码的一部分,但下面的代码不是任何周期,IF等的一部分。可能是什么原因? Dim Shp As Shape For Each Shp In ActWS.Shapes If Shp.Type = msoAutoShape Then Shp.Delete Next Shp

Excel – 多选下拉列表 – 不重复select

我已经开发了我的Excel电子表格,可以使用下面的代码在下拉列表中select多个项目: Private Sub Worksheet_Change(ByVal Target As Range) Dim rngDV As Range Dim oldVal As String Dim newVal As String If Target.Count > 1 Then GoTo exitHandler On Error Resume Next Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation) On Error GoTo exitHandler If rngDV Is Nothing Then GoTo exitHandler If Intersect(Target, rngDV) Is Nothing Then Else Application.EnableEvents = False […]