Tag: 范围

VBA – 从数组中选取范围(F $ 1:F $ 100)中的值

我尝试使用一系列选定单元格的值创build一个数组。 我到目前为止是如下: ActiveSheet.Range("$F$3:$F$100").Select varGetArrayAll = Selection 但它只创build第一个单元格F3的数组。 如果有人能帮助我,我将不胜感激。

Excel VBA – 将parameter passing给一个函数

我试图创build一个Excel函数,该函数将以我要求的任何forms加粗所传达的任何范围。 不幸的是,我只是在正确传递variables并获得这个结果方面取得了部分成功。 当然,没有人喜欢一个部分,所以有人请让我知道我错过了什么。 Sub Macro1() On Error Resume Next 'Create & reset testing area. Range("A1:C6").value = "A" Range("A1:C6").Font.Bold = False [b2].Select 'The two lines below call the function perfectly and the cells are bolded without issue Text_bold ([a1]) Text_bold (Cells(2, 1)) 'However, the party stops there as the following code errors out. Text_bold ([b1].Address) Text_bold […]

我怎样才能保持这个variables的值为我的下一个子程序?

我是一个刚开始的程序员(没有经验)学习Visual Basic的工作,我现在正在做的工作。 我读了一天左右,终于决定开始制作所需的程序! 但是,我遇到了一些问题。 现在我有两个子程序。 第一个子程序让用户input他们有多less个数据对,这样我就可以创build一个表格供他们填写。这样他们的数据就可以在适当的位置供我以后参考。 然后在完成input数据之后,他们按下一个button来启动一个不同的子程序,它将对他们input的数字进行一些计算。 我的问题是,我需要的variables,说明他们有多less数据对进行到第二个例程。 在我继续之前,这里是我的代码到目前为止! (你必须在窗口中向下滚动)我还应该注意到第二个子程序是在一个单独的模块中。 Option Explicit Public Counter As Long Sub TableCreation1() ActiveSheet.Shapes.Range(Array("Button 5")).Select Selection.Delete Counter = InputBox("How many pairs of data do you have? ") Range("A1") = "Time (days)" Range("B1") = "CFL (measured)" Range("A1:B1").Font.Bold = True Columns("A:B").EntireColumn.EntireColumn.AutoFit Range("A1").Select ActiveCell.Range("A1:B" & Counter + 1).Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = […]

检查选定单元格是否在特定范围内

我使用C#来创build一个Excel加载项。 我怎样才能检查select(或由代码范围代表的单元格)是否在specific范围内。 例如如何检查单元$ P $ 5是否在范围$ A $ 1:$ Z $ 10

Excel SortFields添加然后sorting

你能帮我理解这个问题吗? 首先,似乎添加了sorting规则 MainSheet.Sort.SortFields.Clear For lI = 1 To vSortKeys(0, 1) MainSheet.Sort.SortFields.Add Key:=Range(vSortKeys(lI, 1) & 2), SortOn:=xlSortOnValues, Order:=vSortKeys(lI, 2), DataOption:=xlSortNormal Next 然后,我明白下面的代码是有效地运行sorting With MainSheet.Sort .SetRange Range("A" & lFrom & ":" & GEN_REV_END & lTo) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 这个解释是否正确 – 需要先添加一个sorting规则,然后将其与第二部分一起使用? 那么,为什么我们要在第二部分定义一个范围, With MainSheet.Sort .SetRange […]

如何使用VBA检查Excel范围是代表整行还是列?

我需要确定一个给定的Range对象是一个整列还是整行还是两个都不是。 我现在所做的是基于对我有用的下一个代码。 If Range.Rows.Count = Range.EntireColumn.Rows.Count Then … ElseIf Range.Columns.Count = Range.EntireRow.Columns.Count Then … End If 我想知道是否有更高效和/或优雅的方式来做同样的事情? 也许,我忽略了一些内置的财产? UPD:我得到的范围从: Worksheet.Range("NamedRange") 谢谢。

将值粘贴到dynamic范围excel vba中

我正在编写一个脚本,用于在数据库中启用search,将search查询的结果显示在另一个工作表(我将其命名为Results)中,以便用户无法同时访问整个数据库。 为了做到这一点,我想将“数据库”工作表中的值复制到“结果”工作表中。 就任何特定的search标准而言,我已经成功地从“数据库”中select了正确的数据。 我用下面的代码做了这个: With Sheets("Database") .Range(.Cells(i, 1), .Cells(i, 9)).Copy End With 现在我要将结果粘贴到“结果”电子表格中,并通过编写以下内容来完成: Sheets("Results").Range("B600").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats 通过这样做,我不太明白: 如果我已经严格定义了第一个空行和B600之间的粘贴范围, 如果我只是定义了粘贴范围的开始,并且在search结果超过第600行的情况下,它们仍然粘贴在此行之后。 我这样问,因为随着数据库的增长,我肯定需要保证一个比B600更大的粘贴范围。 我已经研究过,但似乎无法完全确定我所做的事情。 我必须说,我知道“结果”数据库中的第一个空行将始终是12.在这种情况下,我知道我基本上想粘贴从第12行的search结果。 也许有一个更直接的方法来做到这一点。 这是整个代码,供参考: Private Sub SearchButton_Click() 'This is the search function '1. declare variables '2. clear old search results '3. Find records that match criteria and paste them Dim country As String Dim Category […]

VBA Excel – 范围select溢出错误

我得到了下面的代码,现在当我用下面的过滤我的结果,它没有返回任何结果我得到一个溢出错误。 但我不明白为什么。 我想这将是我尝试select一个不好的范围。 所以我试着检查第一个单元格的值是否为空。 但目前似乎没有帮助。 If Range("A2") <> "" Then iCtr = Range("A2", Range("A2").End(xlDown)).Count + 1 ActiveSheet.Range("$A$1:$AB" & iCtr).AutoFilter Field:=8, Criteria1:="=1100" _ , Operator:=xlOr, Criteria2:="=1110" End If 所以任何人都有任何想法如何解决这个问题或是什么问题?

过滤xlCellTypeVisible后的Excel VBA范围

我想完成的工作:从一个特定的地址打开一个工作簿,过滤第一列的值等于36或541(我得到这第一部分工作),然后检查列3,看看是否存在2值,如果它存在然后过滤除列3中的值2以外的所有内容; 如果值2在列3中不存在,则跳过。 我尝试使用SpecialCells(xlCellTypeVisible)来命名新的范围,但我必须不正确地使用它,因为它给我一个只存在于数据尚未过滤的旧范围内的值2。 谢谢你的时间! Sub filters() Dim wb As Workbook Dim nwb As Workbook Set wb = ThisWorkbook Set nwb = Workbooks.Open("ADDRESS.FILE.xlsx") With ActiveSheet .AutoFilterMode = False .Range("$A$1:$AD$5000").AutoFilter Field:=1, Criteria1:="=36", Operator:=xlOr, Criteria2:="=541" '.Range("$A$1:$AD$5000").AutoFilter Field:=3, Criteria1:="2" End With Dim newrange As Range Set newrange = ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible) Dim i As Integer, intValueToFind As Integer intValueToFind = 2 […]

Python XLRD使用Range

我想给一个variables分配一个excel范围: import xlrd file = r"C:\Users\Lisa\Desktop\Frank\export.XLSX" book = xlrd.open_workbook(file) sheet = book.sheet_by_index(0) data = [range("A3:D7")] ,但我得到一个错误: data = [range("A3:D7")] TypeError: 'str' object cannot be interpreted as an integer 有任何想法吗?