Tag: 命名

当工作表名称是数字时,索引号/工作表名称与variables混淆

我可能会发现一个新的问题! 我试图select基于工作表名称的工作表,使用名称variables,因为这是一个循环的所有部分。 但是当工作表的名字是一个数字的时候,我遇到了麻烦,因为如果我有,例如name = 5,那么Worksheets(name)给了我索引号5工作表和Worksheets(“name”)当然会查找一个名为“名称”。 我可以做一个解决方法,为每个工作表的名称添加一个字母,这样就不会将其视为数字,然后再删除这些字母,但有没有更好的方法? Sub RenameFiles() Dim source, old_filename, old_tab, new_filename As String Dim i As Integer source = Range("path").Value For i = 1 To Range("total_file_number").Value old_filename = Worksheets("Import and combine").Cells(3 + i, 2).Value old_tab = Worksheets("Import and combine").Cells(3 + i, 3).Value new_filename = Worksheets(old_tab).Cells(1, 1).Value 'If old_tab is a number, VBA treats […]

Excel VBA从用户定义的函数分配值到命名范围失败错误1004

我有一个模块的function。 该function定义如下: Public Function CourseSetup(ByVal SROfferId As Integer) as string 当调用该函数时,以下行失败: Worksheets("CourseEvaluation").Range("CourseName").value = "1234" 失败,错误1004。 子(macros)中的同一行起作用。 CourseName是一个名为ranged的单元。 获得上述范围的价值。 在直接窗口中: ?Worksheets("CourseEvaluation").Range("CourseName").value 返回范围中的当前值。

使用oledb和C#在Excel表格中创build一个命名范围

我正在尝试使用c#和oledb在Excel表格中创build一个命名区域。 我不想使用这个COM对象interops。 尽pipe从命名范围读取stream行,但我还没有find任何执行此任务的在线示例。 背景是,我将有这个Excel工作簿中的各种工作表中的下拉列表中使用的外部数据(来自Sql数据库表的Xml片段),直到Excel文件被select并打开后,其值才会知道由程序。 部分工作簿的预处理是创build并加载这些下拉列表。 创build将在隐藏工作表创build命名区域,然后创build其他工作表上的下拉列表,引用命名的范围(我不知道我可以做到这一点,而不诉诸于COM互操作,但我尝试我必须)。

多个命名范围的最大值

我遇到了很多麻烦。 我想在VBA中复制这个值: =MAX(MAX(Named_Range1),MAX(Named_Range2),MAX(Named_Range3)) 我有一个不可能的时间试图做到这一点。

Excel在工作表中列出名称范围并获取值

如何获取以特定string开头的特定工作表中存在的命名范围列表(例如,以总数开头的所有命名范围)并获取值? 我正在尝试按date计算小计和总住宿费用。 我将根据date组为每个小计分配一个唯一的名称。 然后,我有一个button,当它完成后,需要点击,以基于我已经唯一分配给每个小计的命名范围计算总计。 以下是我写给Grand Total的代码: Sub btnTotal() Dim Total, LastRowNo As Long LastRowNo = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count Total = 0 For Each N In ActiveWorkbook.Names Total = Total + IntFlight.Range(N.Name).Value Next N IntFlight.Range("$P" & LastRowNo).Select Selection.NumberFormat = "$* #,##0.00;$* (#,##0.00);$* ""-""??;@" With Selection .Font.Bold = True End With ActiveCell.FormulaR1C1 = Total End Sub 注意:“Total […]

Excel:命名范围内的Vlookup并返回超出范围的值

我需要find一种方法来search命名范围内的值,并返回该范围旁边的列。 原因很简单:我在列A中使用名称范围进行列表validation。在此列表中,有完整的产品types名称(例如,Relay,Contactor,Enclosure),我需要返回列B中的简短描述。Rly,Cont,Encl),当用户search列表时很容易find他要找的东西。 我知道我可以扩大我的范围为$ A:$ B,但如果我这样做,那么$ B的所有值将包括在列表中… 这显示了一个方法来找出我需要什么:= VLOOKUP(A1;“RANGE + 1C”,2,0)我尝试了很多方法与偏移量和索引,但无法find一种方式来这样做…我甚至认为这将是可能的相对参考(例如= VLOOKUP(A1,说明; 1“RC [1]”,0)或类似的东西…也看在谷歌find一些信息,但似乎是一件非常陌生的事 我需要在一个公式中做到这一点,而不是在VBA中。 这里是一个示例文件的链接: http : //www.filedropper.com/descriptionbuilder 任何提示? 谢谢!

如何在Excel公式中使用命名列

我知道如何在Excel中创build一个命名范围。 我有一个电子表格,各种各样的列作为参数,然后最后一个单元格中的公式。 这在每一行中重复多次,每行都有一组不同的数据,并更新公式来引用正确的行索引。 然而,公式看起来像(3行值): =G2*(10*D2 + 20*E2 + 5*F2) =G3*(10*D3 + 20*E3 + 5*F3) =G4*(10*D4 + 20*E4 + 5*F4) 我想使用命名的范围,但我不能find一种方法来做类似的事情 =Count * (10*var1 + 20*var2 + 5*var3) 其中count,var1,var2和var3自动更新为当前行的特定列。 我可以为每个单元格创build一个命名的范围,但是这没有帮助。 我可以命名列的范围,但是我不能find一种方法来将公式中的偏移量。 这也是整个可读性的重点,所以如果它最终成为一些令人讨厌的复杂的公式函数调用,那可能不会有太大的帮助。

Excel:用VBA命名的范围

我想用VBA在Excel中定义一个命名范围。 基本上,我有一个可变的列号。 然后循环运行以确定该特定列中的第一个空单元格。 现在我想定义一个从该特定列的第2行到该列中的数据的最后一个单元格(第一个空单元格-1)的命名范围。 例如,指定了第5列,其中包含3个值。 如果我是正确的,那么我的范围就是(2,5)(4,5)。 我只是想知道如何使用整数而不是(E2:E4)来指定这个范围。 这是否可能? 我发现这个代码来定义一个命名的范围: 'Change the range of cells (A1:B15) to be the range of cells you want to define Set Rng1 = Sheets("Sheet1").Range("A1:B15") ActiveWorkbook.Names.Add Name:="MyRange", RefersTo:=Rng1 任何人都可以推动我正确的方向来指定这个范围只使用整数?

Excel中的命名范围OpenXML

我正在尝试使用OpenXML在Excel中创build命名范围。 我可以在DefinedNames集合中添加一个DefinedName,但是这似乎没有任何作用。 我注意到ExtendedFileProperties中的一个地方,名称范围正在保存,一个称为“TitlesOfParts”的结构。 我已经尝试在那里添加一个条目,但是这会导致excel抛出一个错误,并且不会创build指定的范围。 这是我正在使用的代码: public void AddNamedRange(string pNamedRangeRef, string pNamedRangeName) { DefinedName _definedName = new DefinedName() { Name = pNamedRangeName, Text = pNamedRangeRef }; _workbook.Descendants<DocumentFormat.OpenXml.Spreadsheet.DefinedNames>().First().Append(_definedName); DocumentFormat.OpenXml.VariantTypes.VTLPSTR _t = new DocumentFormat.OpenXml.VariantTypes.VTLPSTR() { Text = pNamedRangeName }; _spreadsheet.ExtendedFilePropertiesPart.Properties.TitlesOfParts.VTVector.Append(_t); _spreadsheet.ExtendedFilePropertiesPart.Properties.TitlesOfParts.VTVector.Size++; }