Tag: listobject

如何将多个行从一个Excel表(ListObject)附加到另一个?

我有两个表格: Table_1 Table_2 ABCABC ————- ————- 1| A1| B1| C1| 1| A2| B2| C2| 2| A1| B1| C1| 2| A2| B2| C2| 3| A1| B1| C1| 3| A2| B2| C2| 结果表格: Table_1 ABC ————- 1| A1| B1| C1| 2| A1| B1| C1| 3| A1| B1| C1| 4| A2| B2| C2| 5| A2| B2| C2| 6| […]

VSTO:不要包含列标题

我正在使用VSTO从数据库中提取一些数据并将其显示在工作表上 用户按下一个button,工作表被填充一些数据 问题是,当数据被写入工作表时,它会自动包含一个列标题,我不希望这个列标题 我最初设置ListObject.ShowHeaders = false; 但是它包含一个空单元,我不想要一个空单元。 这是我如何声明ListObject private void CreateListObject() { worksheet = (Excel.Worksheet)this.Application.ActiveWorkbook.Worksheets[1]; Worksheet extendedWorksheet = Globals.Factory.GetVstoObject(worksheet); Excel.Range cell = extendedWorksheet.Range["C12", "C16"];//Obtain a range this.listObject = extendedWorksheet.Controls.AddListObject(cell, "Data");//Add to ListObject this.listObject.AutoSetDataBoundColumnHeaders = false; this.listObject.ShowAutoFilter = false; this.listObject.ShowHeaders = false; //I thought this was enough this.listObject.ShowTableStyleRowStripes = false; } 这是我如何填充数据 internal void DisplayData() { […]

如何使用Excel中的ListObject范围validation单元格?

我试图validation一个单元格( 列表typesvalidation)使用ListObject中的行中的值。 当我在我的validation代码中使用命名的范围 ,它的工作原理; 但如果我将指定的范围引用replace为 ListObject引用,则会引发错误。 你可以使用ListObject来validation单元格吗? 这就是我正在做的,使用命名的范围 : With Range("Table1[COL1]").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _ Formula1:="=DEPT_NAMES" ' where DEPT_NAMES is a manually created named range '[…] more stuff goes here End With 但是,如果我replaceFormula1:=的值Formula1:=并让它指向一个有效的列表对象,如下所示: Formula1:="=Table2[COL2]" …我得到一个错误。 我也尝试了通过用户界面,这是行不通的。 你真的不能使用ListObjectvalidation单元格吗?

在表格中删除和添加项目Excel VBA

填写表格时遇到问题。 combobox更改后,表格中将填充数据。 首先,我想删除表格中的数据,然后添加我想要的数据。 我得到的是这(这只是代码的一部分,集合已经充满了数据) Dim TableListObject As ListObject Dim TableObjectRow As ListRow Dim i As Integer Dim CollWerknemer as Collection Set TableListObject = TheSheet.ListObjects(1) Set TableObjectRow = TableListObject.ListRows.Add TableListObject.DataBodyRange.Delete i = 1 For Each vNum In CollWerknemer TableObjectRow.Range(i, 1) = vNum i = i + 1 Next vNum 问题是,它删除表,但不添加任何东西。 如果我从代码中排除TableListObject.DataBodyRange.Delete ,它将使用我想要的数据填充表,但如果更改我的combobox,新数据将添加到底部,而不是先清除表。

跨表单复制时,结构化引用更改为绝对值

我有一个工作簿的怪物,我试图让那些在我之后使用它的人更容易pipe理。 我有大量的代码在按下button时运行,以使对Excel几乎一无所知的用户更友好。 所以这里是我需要帮助的地方 我有几张与类似的表。 我的第一张工作表包含客户信息的主列表,并按下一个button,将这些信息复制到另一张工作表中并对其进行分类,以将这些客户分类到各自的工作表上。 这使我只能在第一张纸上input新的信息,并使其自动填充纸张,以最大限度地减less人为错误。 为了减less很多错误,我在表中使用了结构化引用。 我本来没有这样做,但我一直在努力改进这个工作簿。 无论如何,所以我在每个表中都有一个“费用types”列,并且总列将其作为参考 [@[Charge Type]] 这是非常好的,考虑到客户会被相当有规律的添加和删除,这样可以减less错误。 但是,当这个公式被复制到其他工作表之一,它被转换为 All_List[@[Charge Type]] 它在sheet1上添加表格的名字,即“All_List”。 现在我想要在新表格中特别引用“费用types”一栏,我不能为我的生活弄清楚如何。

我如何复制另一张工作表中的行,并将其粘贴到其中有一张表的工作表中?

我正在处理一个代码,所有我想要做的就是复制一张纸上的数据,并将其粘贴到另一张具有表格设置的纸张上。 我的代码正在做我想要做的事情,但是,表格不会resize以包含所有被复制的行,只有复制数据的第一行进入表格。 其余格式不在表格中。 这是我运行代码后的样子 Sub LastRowInOneColumn() Dim LastRow As Longenter image description here Dim i As Long, j As Long 'Find the last used row in a Column With Worksheets("First Page") LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With 'first row number where you need to paste values in Sheet1' With Worksheets("Report") j = .Cells(.Rows.Count, "A").End(xlUp).Row '+ […]

Excel ListObject表 – 从ListObject表中删除过滤/隐藏的行

我在敲我的头,find一种方法来从ListObject表中删除过滤/隐藏的行。 过滤不通过代码执行,它由用户使用表头filter执行。 我想删除过滤/隐藏的行之前,列表ListObject表和执行小计操作。 如果我在删除表之前不删除过滤/隐藏的行,这些行会重新出现。 当前代码: Sub SubTotalParClassification(ReportSheetTitle) Dim ws As Worksheet Dim drng As Range Endcol = ColCalculationEndIndex Set ws = Sheets(ReportSheetTitle) 'CODE TO REMOVE HIDDEN/FILTERED ROWS Set lo = ActiveSheet.ListObjects("Entrée") For i = 1 To lo.ListRows.Count Step 1 If Rows(lo.ListRows(i).Range.Row).Hidden = True Then lo.ListRows(i).Delete Next ' convert the table back to a range to […]

为什么当表单有filter时,ActiveSheet.FilterMode返回False?

我使用下面的代码试图检测应用于表中的列的filter,然后清除filter: If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData 根据微软文件: 如果工作表包含有隐藏行的已过滤列表,则此属性为true。 这似乎并不是这种情况,因为ActiveSheet.Filtermode仅在select应用filter的表格中的单元格时返回True 。 第一个问题:文档是否错误? 文档 第二个问题:我唯一的select是在表格内select一个单元格来让expression式返回True吗? PS我正在使用Excel 2010 编辑:回答问题2,非基于方法来清除筛选器… If ActiveSheet.ListObjects(1).Autofilter.FilterMode Then ActiveSheet.ListObjects(1).Autofilter.Showalldata

Excel VBA更改我的公式在表中?

有没有人遇到的情况,Excel似乎操纵你的公式。 我有一个工作表,其中A列中有一个索引值。第一行以任何非零值开始。 列中的后续行增加值。 例如 A1 = 1000 A2= A1+ 1 A3= A2 + 1 等/我有另一列B的值将是空白或公式指向列A(通常是后续行)例如: B1.Formula = "=A2" B2.Formula = "=A3" B3.Value = "" B4.value = "=A6" 现在我有一个备份还原function,可以将数据/公式写入文本文件,然后在另一个工作簿中读取。 在列A和B的情况下,我正在检查文本值是否以“=”开始,然后根据是否存在公式来设置该单元格的值或公式。 到目前为止,function工作正常。 它让我准确地恢复。 现在,如果我将这个数据范围转换成一个表并修改相应的代码,这个行为就很奇怪了。 我正在使用ListObject结构来引用表。 所以对于列B我的恢复代码是: If Left(soureString) = "=" Then 'This is a formula Sheets("MySheet").ListObjects(1).ListColumns("Next").DataBodyRange(row).Formula = sourcestring Else 'This is a value Sheets("MySheet").ListObjects(1).ListColumns("Next").DataBodyRange(row).Value = soureString End […]

Excel VBA – 将表格列存储到范围variables中

我目前正在使用excel表格的对象types的excel VBAs ListObjects进行实验。 我想存储一个表列的范围到一个variables 。 这是我能做的事情: 'store a group of cells into a range variable dim rng as Range set rng = activesheet.Range("A1:A10") 'select a table column dim table as ListObject set table = activesheet.listobjects("Table1") table.ListColumns(1).Range.Select 虽然上述两个工作,我不明白为什么以下不起作用:( 编辑:它的工作原理 ) dim rng_column as Range set rng_column = table.ListColumns(1).Range 我尝试过其他variablestypes,例如variant或ListColumn ,但是没有任何东西将单元格存储到variables中。 在上面的例子中,没有错误,但variablesrng_column仍然是<empty>我知道还有其他的解决方法,但我真的想了解这里有什么问题。 更新经过一些有用的评论,我可以缩小问题的范围。 一切正常。 但是,我犯了两个错误。 首先,我在variables名称中有一个拼写错误。 (我应该包括选项明确注意到这一点)。 […]