Tag: 工作表

在Excel VBA中将数据表名称添加到数组中

我正在尝试使用下面的代码将表名添加到Excel VBA中的数组中。 它只提取一个值(总是最后的工作表名称)。 例如,如果我有两个工作表:List1和List2,它只拾取List2并为第一个工作表显示空白值。 如果我加4,它只显示第4个,依此类推。 我不知道为什么我得到空白值。 Dim curSheet As Worksheet Dim ArraySheets() As String Dim x As Variant For Each curSheet In ActiveWorkbook.Worksheets If curSheet.Name Like "*List*" Then ReDim ArraySheets(x) ArraySheets(x) = curSheet.Name x = x + 1 End If Next curSheet

请参阅表格使用代号

With Worksheets(Sheet1) '* Error here 'my code here End With 我的工作表的CodeName是Sheet1。 这里的错误说types不匹配。 有人可以帮我删除错误?

VBA – 通过工作表循环查找用户select范围内的最大值

我正在尝试为我的工作簿中的每个工作表取决于用户所选范围的最大值。 我希望用户只select一个范围,并根据该范围查找每个工作表的最大值。 换句话说,用户select范围B1:B100。 macros应循环遍历每张纸,并在每张纸的B1:B100范围内find最大值。 最终,每个工作表都有一组数据点,我想用用户select范围内的最大值来划分。 这是我的代码(以及相关部分): Sub Plot() Dim i, ws_count As Integer Dim userng, brng As Range Dim maxval As Double On Error GoTo Canceled Set userng = Excel.Application.InputBox("Please input range.", "Input", Selection.Address, , , , , 8) ws_count = ActiveWorkbook.Worksheets.Count For i = 1 To ws_count Worksheets(i).Activate maxval = userng.Cells(1, 1).Value For Each […]

两个不同工作表中的date范围之和

我有两个工作表,让我们把它命名为苹果和香蕉。 我希望在苹果公司看到答案,并从2016年1月1日至15日的标准获得香蕉的价值。 鉴于: A2:带date的A3000 E2:E3000的金额或费用 我的公式是: =SUMIFS('Banana'!E2:E3000,'Banana'!A2:A3000,">="&DATE(2016,1,1),'Banana'!E2:E3000,"<"&DATE(2016,1,15)) 这是增加金额,但问题是,这也是增加金额大于等于1月16日。 另外,你认为这与我在香蕉date的格式有关吗? 它被格式化为mm,dd,yy 。 但是,如果我把&Date ,它需要year,month,day 。

OpenXML电子表格删除行导致excel不可读的内容错误

我试图清除Excel模板中的行。 之前的代码通过并创build基于模板的工作簿。 该代码生成没有错误的罚款excel文件。 只有在添加这个部分的时候才会遇到问题: Sheet theSheet = workbookPart.Workbook.Descendants<Sheet>() .Where(s => s.Name == task).FirstOrDefault(); if (theSheet != null) { WorksheetPart worksheetPart = (WorksheetPart)workbookPart.GetPartById(theSheet.Id); SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>(); var rows = sheetData.Elements<Row>().Where(r => r.RowIndex > 1).ToArray(); for (int x = 0; x < rows.Count(); x++) { ((Row)rows[x]).Remove(); } worksheetPart.Worksheet.Save(); } 它成功清除了行。 但是,当我在Excel中打开文件时收到以下错误: Excel在“excel.xlsx”中发现不可读的内容。 你想恢复这个工作簿的内容?… 点击是给出以下详细信息: <repairedRecords summary="Following […]

如何在function中正确激活工作簿中的工作表

我正在尝试获取工作簿中给定工作表的最后一列和最后一行。 下面是我用来获取这些值的代码。 这个代码工作完美(因为我得到正确数量的上校和行),只要我点击工作表,然后运行Sub LastRowCol() 。 Function LastUsedRow_Find() As Integer Dim rng As Range Set rng = ActiveSheet.Cells LastUsedRow_Find = rng.Find(What:="*", After:=rng.Cells(1), Lookat:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row End Function Function LastUsedColumn_Find() As Integer Dim rng As Range Set rng = ActiveSheet.Cells LastUsedColumn_Find = rng.Find(What:="*", After:=rng.Cells(1), Lookat:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False).Column End Function Sub LastRowCol() MsgBox "last […]

MS Excel LOOKUP从上到下列

我有一个问题find一个方法让LOOKUP从上到下search栏。 这是情况。 我需要为Excel创build一个公式来search句子中的硬件部分。 例如: 句子(A1) 客户电脑无法开机。 检查主板。 主板故障 更换主板。 PSU没有足够的电力。 更换PSU。 这里是查找范围列(HARDWARE) 更换PSU 更换主板 结果范围列(HARDWARE_PART) PSU 母板 我使用的公式是 LOOKUP(9999;SEARCH(HARDWARE;A1);HARDWARE_PART) 结果将是“主板”。 因为LOOKUP会从下到上search列。 我现在要做的是LOOKUP从上到下search列,以便能够检测到另一个replace部分。

Excel VBA,工作表中的代码不工作

我在sheet1中有下面的代码(注意 – 这个代码位于wroksheet对象中,而不是工作簿对象或模块): Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Integer r = ActiveCell.Row Cells(r – 1, 7).Value = Now() ActiveWorkbook.save End Sub 有人可以告诉我为什么:1. ActiveWorkbook.save不工作以上 – 它卡在一个死循环,而不是; 2.为什么我不能通过按F8单步执行代码 我尝试将ActiveWorkbook.save放在一个单独的模块中,然后从工作表中的代码中调用该函数,但也陷入了无限循环。

没有原始工作簿参考的Excel VBA复印表

我有一个例程,它复制了许多工作簿中的各种工作表,并将这些工作表粘贴到“主”工作簿(包含不同工作簿中的不同工作表)中。 代码运行良好,但是它也保留了对原始表格的引用,例如通常的“额外” =SUM([Book1]Sheet1!C13:G13) (以保持示例简单)。 我正在复制的工作表需要以完全相同的格式进行复制,我使用以下命令: Dim WS_Count As Integer WS_Count = wb.Worksheets.Count For c = 1 To WS_Count If wb.Sheets(c).Name <> "TEST" Then wb.Sheets(c).Copy Before:=master.Worksheets(master.Sheets.Count) End If Next 文档的复制和合并工作得非常好,但是我也在复制工作簿中的一些汇总表,这些工作表包含对表单的内部引用,并且在没有原始工作簿引用[Book1]的情况下复制时遇到困难。 由于有许多源工作簿文档,因此在处理主工作簿时,我不知道工作簿的文件名。 我的问题是,有没有办法复制一个表格的所有格式,而不复制单元格工作簿参考? 我也尝试了所有变化的粘贴/粘贴特殊但是这或者丢失工作表格式或仍然保留其他工作簿参考。 我希望避免必须查找并replace包含[… .xls]的string,因为它不是一个优雅的解决scheme。 任何指针正确的方向将不胜感激。

stream式传输实时数据时,Worksheet_Change不会启动

我已经阅读了许多关于这个话题的文章,但是似乎没有任何工作适合我的情况 我想要Call Sub单元格更改(B2),其中包含来自外部源的实时数据馈送 – last updated : Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Target.Worksheet.Range("B2")) Is Nothing Then Call SubName End If End Sub 我经历了许多post,build议检查Äpplication.EnableEvents = True ,或者创build函数来检测变化(但是我不能在函数内调用子函数),但没有成功。 Interestnigly enough, when I click on B2 and press enter – it executes the sub 谢谢