Tag: 范围

将if语句应用于使用VBA的单元格范围

我有一个小范围的细胞,C6:C10。 我试图应用一个if语句使用VBA代码的这个单元格范围。 目前,我的代码获取第一个单元格(C6)的if语句的输出,并为单元格C7:C10复制该值。 if语句是正确的,我只是不知道如何将其应用到一列中的单元格范围。 Sub Cleanup() Dim Segment As String Dim i As Integer Segment = ActiveCell(6, 3).Value For i = 6 To 10 If Right(Left(Segment, 6), 1) = "/" Then ActiveCell(i, 3).Value = Left(Segment, 5) Else ActiveCell(i, 3).Value = Left(Segment, 6) End If Next i End Sub

如何在Excel中select范围中的最后一个单元格

我有一个电子表格,全天使用数据更新,我需要能够抓取列中的最后一个单元格,但是对于特定的date范围,而不仅仅是列中的最后一个单元格。 C列包含我需要的数据,A列和B列用date和时间更新(列A中的一些单元格也可以是空白的)。 列DI可以更改为使列E显示所选date的最新数据。 这是我到目前为止已经在列E中: VLOOKUP(D1, $A:$C,3,FALSE) 我已经设法从我的公式获取数据,但只有第一个条目。 例如,如果我inputdate17/05/2016,将返回“5”。 而我需要更新的数据“28”。 示例表: A | B | C | D | E 16/05/2016 | 08:00:00 | 3 | date | data 16/05/2016 | 12:00:00 | 7 16/05/2016 | 18:00:00 | 15 16/05/2016 | 22:00:00 | 27 17/05/2016 | 08:00:00 | 5 17/05/2016 | 12:00:00 | 11 17/05/2016 | […]

macros完成后,VBA保留实例(Excel)

我有我自己的一些对象,我在Excel中的ThisWorkbook里面实例化。 我有一些麻烦 ,我认为这个问题是macros一旦结束VBA就会杀死我的实例。 我们正在使用ThisWorkbook : 如果我在macros中为ThisWorkbook定义自己的variables,那么即使variables在ThisWorkbook的类中Dim'd而不在模块中,该variables的值也会在macros完成后回到初始化值。 (即0,Nothing等) 如果我在Workbook_Open()事件中为ThisWorkbook实例化一个对象,则当事件完成时,该对象被销毁。 同样,即使variables在ThisWorkbook类中是Dim'd而不在Workbook_Open()的子类中, 有什么我可以做,以确保这些对象生存下来,这些variables保持其价值? 在ThisWorkbook : 'Object we want to survive Dim myInstance As MyObject Private Sub Open_Workbook() Set myInstance = new MyObject ' Object is instantiated End Sub ' Macro 1 Public Sub MyMacro() Set myInstance = new MyObject ' Object is instantiated End Sub ' Macro 2 […]

如何获得一个范围内的范围值

所以我需要从工作表中提取信息只有一定的价值。 从大约550行减less到50,遍布整个表格。 所以我用autofilter。 现在我只能看到符合我的标准的行,但我怎样才能得到特定范围的值? 我到此为止: 我知道我必须使用 RangeINamed.SpecialCells(xlCellTypeVisible) 只与可见信息一起工作。 它起到了起始和最后一行的作用 startRow = bulkbatchRange.SpecialCells(xlCellTypeVisible).row endRow = startRow + bulkbatchRange.SpecialCells(xlCellTypeVisible).rows.Count 但是现在我需要获取特定列的值,我想使用For循环,这样我就可以遍历所有可见的行。 所以我试着去做 RangeINamed.SpecialCells(xlCellTypeVisible).range("U" & rowNumber).value 这没有用,它没有给我什么。 现在我相当无知,所以有人可能知道我如何获得RangeINamed列U中该行的值? 谢谢

C#检查是否存在单元边框

我正在用C#使用Microsoft.Office.Interop.Excel做一个小项目,我有点卡住了。 我想要做的是创build一个方法,需要一个范围,然后返回true或失败的基础上,如果有一个边界在范围的底部边缘。 private bool BottomEdgeHasBorder(string range) { if (has border at bottom edge of range) return true; else return false; } 我已经search了很多这个问题,但我能find的是有关添加边框的问题。 我只是想检查是否有边界。 我努力了 Excel.Range range = ExcelWorksheet.get_Range(range, Type.Missing); if (range.Borders[Excel.XlBordersIndex.xlEdgeBottom] == Excel.XlLineStyle.xlContinuous) return true; 伟大的任何帮助!

获取格式为(A1:A15)的单元格的范围

这可能是一个简单的问题,但我找不到答案,但我有一个单元格包含单元格范围为A1:A15格式的文本。 我正在尝试编写一个函数来接收单元格的实际范围(A1:A15),但它只给出了实际单元格的地址(B4)。 我怎么能得到范围本身,而不是单元格的地址? function是: Function IsSick(ByVal Arr As Range) As Integer Dim i, k As Integer k = 0 Arr.Select For i = 2 To Arr.Count If Arr(i) >= 37 Then k = k + 1 Next i IsSick = k End Function 先谢谢你

Excel VBA如何select可变范围的单元格

我试图search这个问题,但没有发现类似的问题。 我仍然是VBA的新手,我正在尝试创build一个macros,它根据用户的input来select单元格的范围,然后在这些选定的单元格中创build一个概要的网格。 我有两个ActiveXbutton在我的Excel工作簿,让用户input多大的网格是他们想要使用(宽度和高度)。 我正在努力将上面提到的宽度和高度包含到我的代码中。 这里是button的代码(没有什么不清楚): Private Sub Height_Click() Dim Height As Integer Height = InputBox("Syötä ruudukon korkeus", "Ruudukon korkeus", "Syötä tähän") Range("E5") = Height End Sub 和宽度button: Private Sub Width_Click() Dim Width As Integer Width = InputBox("Syötä ruudukon leveys", "Ruudukon leveys", "Syötä tähän") Range("E2") = Width End Sub 我希望我的网格从单元格“G2”开始,并从那里向右和向下展开,并更改所选单元格的大小。 但是我写的代码根本不工作(就像我想的那样)。 这里是代码: Private Sub CreateGrid_Click() Columns("G:G+E2").Select […]

使用范围时Excel VBA错误1004

我在VBA工作,我需要做一个512X512(cellsXcells)的正方形大小。 广场假设与细胞的边界。 我做了dynamic的大小,所以用户可以插入他想要的大小(最大为512)。 现在我尝试了很less的技术来做到上面的事情,但总是因为错误1004的运行时间而失败。 Sub printGrid(gridSize) Range(Cells(1, 1), Cells(gridSize, gridSize)).Select With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlThick End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlThick End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlThick End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlThick End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous […]

VBA – Excel:提到一个等于给定less一行的范围

所以我有一个给定的函数,它接收一个范围(它总是大小(X,1) – 意味着它是一个列)作为参数,如下所示: 函数myfunction(byref myrange as Range)为Double … myfunction =东西 结束function。 在这个函数的某个地方,我需要引用“myrange of size(X-1,1)”。 这是我想调用函数,应该接受作为参数相同范围的myrange,而不是说,B10:B15我想通过它B10:B14 我不知道该怎么做 你可以帮我吗? 谢谢, 瑞

在VBA中使用sorting范围进行更改

我有一个VBA中的单元格范围,每次运行代码时都会改变。 我正在尝试编写代码,以便该列按F列sorting。 我遇到的问题是,它只能是这个细胞的特定范围。 此范围下还有其他单元格,我不想分类,并且此范围的大小会发生变化。 部分代码如下。 这是我迄今为止所尝试过的,没有运气。 Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select vtools = Selection ActiveWorkbook.Worksheets("Exceptions Weekly Summary").Sort.SortFields.Add Key _ :=Range(vtools), SortOn:=xlSortOnValues, Order:=xlAscending, _ DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Exceptions Weekly Summary").Sort .SetRange Range("B11:H14") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 这不起作用。 我不能直接引用单元格(例如,我不能使用Range(“F2:F5”)),因为这些单元格在每次运行代码时位于不同的位置。 我知道如何find我需要sorting的东西,甚至select它,但是我无法告诉sorting函数要sorting的列。 有人可以帮我弄这个吗? 提前谢谢你!