Tag: 范围

如何使联合范围更快的大循环

我有一个在循环中大约5000次迭代之后变得非常慢的子。 否则很快。 Windows 8.1 Pro 64位 Excel 2013(15.0.4701.1001)MSO(15.0.4701.1000)64位 Sub UnionSlow() Dim ColArray() As Variant Dim NumLastRow, NumRow, Cnt As Long Dim CurCell As String Dim rngPRC As Range 'Set an arbitrary row so range is not empty Set rngPRC = Rows(1) 'Get the total number of rows in the sheet TotalRows = Rows(Rows.Count).End(xlUp).Row 'Load the […]

如何在Excel中使用C#获取用户选定范围中的特定单元格

我创build了我的第一个Excel加载项,并希望查找用户select的范围内的特定单元格。 我知道列中的值是我需要的。 所以我testing它: Excel.Range selection = Globals.ThisAddIn.Application.Selection as Excel.Range; Excel.Range firstValue = selection.Columns["I"].Find("*", Type.Missing, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart,Excel.XlSearchOrder.xlByColumns,Excel.XlSearchDirection.xlNext, false, Type.Missing,Type.Missing); 现在我有“I”栏的第一个值, 当用户所做的“select”从列“A”开始时, 如果用户select从C2到H20的取样,代码不能find列“我”我变得比其他范围,而不是“我”列。 我认为他是“我”总是“9”。 当用户在新范围中从“C2”到“H20”select的列是“C”=“0”,列“L”= 9时,即使我在代码中写入“I”,代码select列“L” 。 有没有人有一个想法,我怎么能读取特定的列或细胞我想要的内心select的用户,无论用户开始他的select? 先谢谢你

“方法'范围'的对象'_Worksheet'失败的”错误消息

我已经尝试了在底部的链接中提出的代码,但得到一个错误的行: Set getNthColumn = Range(startCell, endCell) 错误是对象“_Worksheet”失败的“方法范围” 此代码应该设置公式为VLOOKUP的范围单元格的颜色格式。 所有帮助赞赏。 谢谢。 Vlookup复制单元格的颜色 – Excel VBA

在Excel中select范围,并将其作为进一步参考的表格

我相当新的VBA编码。 我正在为每个季度收到一次的特定数据集编写一段代码。 我想要代码select范围,然后使它成为一个表后面的列将被添加到表等 我写了下面的代码,但是,它似乎尽其所能,但仍然给我一个“types不匹配”的错误,但行动仍然执行,因为它应该。 请告知导致错误的原因(第20行错误 – select和创build表的最后一步) Sub QMRQOC() 'CREDIT MACRO 'Set Variables Dim CrData As Worksheet Set CrData = Worksheets("Credit Data") Dim LastRow As Long Dim LastColumn As Long Dim StartCell As Range Set StartCell = Range("A1") Dim CrRng As Range Dim CrTbl As ListObject 'Find last row and column LastRow = CrData.Cells(CrData.Rows.Count, StartCell.Column).End(xlUp).Row […]

如何将工作表和范围传递给variables?

我想在子程序之间传递表单和范围的名字。 以下引发“下标超出范围”错误: Sub This() x = "Sheet1" y = "D3" MsgBox (x.Range(y).Value) End Sub 这是我的项目资源pipe理器的一个样本 。

范围对象通过“工作表1”而不是“工作表2”

我有一个迭代遍历for循环中的一系列项目的问题: 程序如何工作 – 我从工作表1开始(“跟踪电子表格”),并根据工作表1中的更改​​(在单元格中select“是”),它会将您转移到工作表2(“延期送达”),然后遍历从工作表2中的单元格(例如A1:A20)。for循环将继续前进,直到它到达空单元格为止,然后停止然后继续写入该单元格。 现在如何工作 – 我从工作表1开始,根据工作表1中的更改​​(在单元格中select“是”),它会将您转移到工作表2,然后从工作表2中遍历一系列单元格(例如A1:A20)。但是,不是遍历工作表2的A1:A20,而是遍历工作表1的A1:A20。 在工作表1的A1:A20范围内find一个空单元格后,它将填充工作表2中的相应单元格(如果A5在工作表1上为空,则会在工作表2上填写A5)。 我希望得到帮助的范围迭代通过活动工作表(工作表2),而不是迭代通过工作表1。 我的代码到目前为止: Private Sub Worksheet_Change(ByVal Target As Excel.Range) ' Deferred Submittal, Column C = 3 Dim cellTextDS As String Dim deferredArray As Range, deferredCell As Range, deferredRowEmpty As Long deferredRowEmpty = 1 ' Deferred Submittal, Column C If Target.Column = 3 Then Row = Target.Row cellTextDS = […]

带有VBA的Excel MsgBox用于多个链接的范围

我需要一些有关excel问题的帮助。 这是以下两个问题的组合: 1) Excel – 当单元格值符合特定条件时,popup消息并发出声音警报 2) 如果目标单元格中​​的公式超出特定值,则显示“消息框”popup窗口的VBA代码 在Sheet1中 ,我有一系列的产品和销售数字。 示例: Sheet1 在Sheet2中 ,我有多列sumif()函数。 示例: Sheet2 。 它包含(A:A)中的一列名称和(B:B)&(C:C)中的数据,它们链接到其他工作表中的单元格。 当列B中任何单元格的值超过20或C列超过40时,我会popup一个通知(“列A中的文本已售出> 20)”。 例如 :如果列“B”中的一个单元格值更新为33(即> 20),并且列“A”中的对应单元格值包含文本为“查理”,则Excel表格应该popup消息“Charlie sold是> 20“。 下面的VBA代码完成这个IF如果它是原始数据。 但是,单元格链接到其他工作表的数据时不起作用,如本工作簿的情况。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.column = 2 and target.value > 1 Then MsgBox target.offset(0,-1).text & " sold is > 20" End If End Sub 该替代代码适用于从其他工作表链接的数据,但它仅适用于特定的单元格,而不是整列。 […]

通过公式返回dynamic变化范围内匹配单元格的值?

经过几个小时的search和尝试,我已经承认失败,并要求这个社区的智慧帮助。 目标: – 匹配客户ID并返回每个date范围的值1和值2。 (在红色框中的区域) 限制让我获得一个简单的解决scheme: – 数据不能以任何方式修改(黑框中的区域),它在另一个表格中,不能添加辅助列 – 数据由一个只有date范围更改的标题分隔,但是数据的长度是dynamic的 – 此工作表上不允许使用macros,所以解决scheme必须是公式 当前迎angular(仅适用于H2单元): =VLOOKUP(G1,("B"&(MATCH(G2,B:B,0)+ROW(B:B)-1)&":"&"D"&(MATCH(G3,B:B,0)+ROW(B:B)-1)),2,FALSE) 这试图通过匹配date和插入find的行号来定义Vlookup范围。 =("B"&(MATCH(G2,B:B,0)+ROW(B:B)-1)&":"&"D"&(MATCH(G3,B:B,0)+ROW(B:B)-1)) 返回正确的范围,但是当它被插入到Vlookup的范围目标时,我得到一个值错误。 另一个失败的是,它不会为数据的最后一部分工作,因为它会丢失与date的结尾标题。 贝娄是一个非常简化的数据,我将与之合作: 谢谢你在这个头上的任何和所有的帮助

VBA求和单元格范围

我正在尝试编写一个简单的VBAmacros,它将采用活动单元格的列和用户的input将一行单元格的范围添加到一起。 范围是通过将用户input的整数添加到活动列并且是结束列来计算的。 问题是它给我运行时错误“424”,并告诉我“对象需要”。 当我运行它,并在总和线上生气。 这是我的代码。 我刚开始在VBA,所以它不能那么辛苦….对吧? Sub Food() Dim first As Variant Dim last As Integer Dim days As Integer Dim month As Variant Dim total As Double first = ActiveCell.Column days = InputBox("Days in the month?") last = first + days month = Range(Cells(first, 4), Cells(last, 4)) total = Excel.WorksheetFunction.Sum(Report.Range(month)) Worksheets(1).Cells(1, 13).Value = total […]

C#excel – 只提取一列内的行

我有以下代码: Excel.Range range = workSheet.UsedRange; for (rowCount = 2; rowCount <= range.Rows.Count; rowCount++) { //Do something here } 但是,我遇到以下问题。 如果我有以下excel数据: cell1, cell2, cell3 cell4, cell5, cell6 …………..cell7 range.Rows.Count将返回3.但是,我不关心列C – 它有一些数据用于列1中的下拉列表。我怎么才能得到range.Rows.Count只有列A和B? 例如: