Tag: 工作表

Excel VBA分组命令button在工作表上

我已经看到了很多关于获得几个命令button来做类似事情的信息,但是我所看到的一切都是关于用户表单的。 我想有一组命令button将数据从一个单元格移动到另一个单元格。 我只是不想复制和粘贴到每个命令button相同的代码。 这是我想为每个命令button做的一部分: Range(CommandButton1.TopLeftCell.Address).Select Selection.Copy If Application.WorksheetFunction.IsText(Range("R5")) And Range(CommandButton1.TopLeftCell.Address).Value <> Range("R5") Then Range("R6").Select ActiveSheet.Paste Range(CommandButton1.TopLeftCell.Address).Select Else Range("R5").Select ActiveSheet.Paste Range(CommandButton1.TopLeftCell.Address).Select End If Application.CutCopyMode = False 我试过使用类模块,但似乎无法得到它的function。 我想能够将该代码放入某个类或某个组中的所有命令button上运行。 然后,我想要在同一张纸上的不同组命令button执行不同的代码。 我应该采取什么路线?

复制整个工作表 – 保持相同的格式

我想将工作簿“Trial Data.xlsx”中的工作表“试用表”复制到名为“复制工作表”的海洋工作簿中。 我想保持格式(列宽,缩放等),能够复制工作表,而不必打开macros观似乎没有做的“试验数据”工作簿。 我logging的macros如下。 Sub worksheet_copy() Windows("Trial Data.xlsx").Activate Cells.Select Selection.Copy Windows("Copy Worksheet.xlsm").Activate Cells.Select ActiveSheet.Paste End Sub 我遇到了以前的答案( 将整个工作表复制到Excel 2010中的新工作表 ),但不知道如何修改我的特定文件而不出错。 任何帮助将不胜感激。

在其他工作表中使用“文件名”更新的Excel公式

我有我的选项卡命名为月末date,我经常忘记更新date单元格(这是变得重要,当我必须打印)。 所以我想我会使用'Filename'属性, 左/右/中期function ,和datefunction自动设置date单元格。 这就是我想到的: =DATE(RIGHT(RIGHT(CELL("filename"),8),4),LEFT(RIGHT(CELL("filename"),8),2),MID(RIGHT(CELL("filename"),8),3,2)) 内部“ RIGHT ”抓取文件名(工作表标题)的最后8个字符,然后外部子string函数将其分开,以便它可以用作“ DATE ”函数的参数。 这工作正常。 当我尝试从工作表复制到工作表时,问题来了。 首先,我确定我的标签不分组。 但是,每当我计算其中一个包含文件名属性的单元格时,它会更新所有工作表以使用最后一个工作表的date来计算。 IE我计算工作表“05312013”​​中的date单元格,它将所有月份的date单元格更改为“05/31/2013”而不是只是一个预定的表。 发生了什么,如何解决?

工作表什么时候分配他们的.CodeName属性?

所以,在我的VBA的过程中,我在工作簿中创build了一个子表,并dynamic地将代码添加到新的表激活事件中。 实际上很酷。 但是,我遇到了表单代码名称的问题,当我去引用新表单时,新表单没有被分配代码名称。 用于获取对新表单代码模块的引用的代码是: With ActiveWorkbook.VBProject.VBComponents(CName).CodeModule .CodeModule其中CName是表单代码名称。 我得到CName: CName = Workbooks(ExcelFormName).Sheets(NewSheetName).CodeName其中NewSheetName是一个全局常量。 这总是起作用的,因为这个代码的执行与创build表单的function相同,因此用户没有机会重命名表单。 我发现通过testing(包括头发拉动),当我创build工作表: Set ws = Sheets.Add(, After:=Sheets(Worksheets.count))表没有分配代码的名称,除非vbe窗口打开..我使用了debug.print "Test " & ws.codename来确认代号是空的 – ""所以当我试图用代码名称引用表时,我得到一个错误。 我发现我能做的是: Application.VBE.MainWindow.Visible = True Application.VBE.MainWindow.WindowState = vbext_ws_Minimize 在创build工作表之前,要快速打开并最小化VBE窗口(我稍后closures它),这是我不喜欢的,但它工作。 但是现在我遇到了一些问题,有些用户的安全设置不允许vbe窗口打开。 我注意到,就在现在,如果我循环遍历工作簿中的所有vbcomponents,甚至不做任何处理,如: Dim test As VBComponent For Each test In ActiveWorkbook.VBProject.VBComponents Next 然后在工作表中有一个代码名称..所以我想知道,除了循环通过这样的组件,以确保新的工作表有一个代码名称,而不是这样做,工作表何时正常如果VBE窗口未打开,请指定其代码名称? 编辑 你的build议siddharth结果的图片: 你可以看到,我添加了你的build议,我得到了错误9,下标超出范围的错误 EDIT2 Dim CName As Variant CName = […]

Exceldynamic工作表参考

我总共有4个工作表在Excel文件。 1.Sheet1 2.Sheet2 3.Sheet3 4.Summary 在A1的汇总表中有表单名称,在A1:A3中,我有随机的不同主题。 如果我在A1中selectsheet2,则Sheet2中的主题值应该复制到此处。 同样,如果selectsheet3,它应该给我在sheet3中input的主题值。 我用嵌套的If语句做了这个。 但问题是如果嵌套高达64级。 我试图用间接,索引,匹配,Vlookup做到这一点,但没有获得确切的表和主题值。 请帮忙。

单击VBA表单button,更改行中所有列的值

我已经为我的新数据库添加了一个帐单的一个美丽的forms。 现在我需要“提交”button来计算和组织我的工作簿中的信息。 为了简化这个问题,我首先关注一个我命名为billData的工作表。 我将需要表单的每个input字段自动填充到billData工作表的下一个可用行。 这是我到目前为止所提出的: Private Sub NB_SubmitButton_Click() 'NB stands for New Bill Dim OwnerName As String Dim ExpenseName As String Dim CycleValue As String 'such as every day, every week, every month etc. Dim OnValue As String 'such as Monday, the 5th, the 10th, etc. Dim AndValue As String 'such as 19th, 24th, etc. […]

如何创buildExcel工作表并将其添加到Excel InterOp中的多个工作簿

我一直在遵循以下模式,使用Excel InterOp创build多个工作表和多个工作簿。 现在,我需要创build一个叫做主工作簿的工作簿,它将包含我在原始工作簿中创build的工作表中的一些工作表。 举个例子,比方说WorkBook1有Sheet1和Sheet2,而Workbook2有Sheet3和Sheet4。 我希望主工作簿具有Sheet1和Sheet3。 我正在寻找一种方法来创build我为WorkBook1和WorkBook2创build的工作表(工作表1,工作表2,工作表3,工作表4),而且只需最less量的代码重复将工作表1和工作表3添加到主工作簿。 任何帮助将不胜感激。 For i = 1 To 10 Dim xlApp As Application = New Application Dim xlWorkBook As Workbook xlWorkBook = xlApp.Workbooks.Add Dim xlWorkSheet As Worksheet Dim xlSheets As Sheets = xlWorkBook.Sheets Dim xlNewSheet As Worksheet Dim sheetCount As Integer = 1 ' So I repeat the following block to […]

Copaar planilhas de Excel de acordo com modelo usando VBA

我需要一个电子表格“模型”被复制和重命名。 我试着用下面的代码: Dim WS1 As Worksheet Set WS1 = ThisWorkbook.Worksheets ("model") ws1.Copy ThisWorkbook.Sheets (Sheets.Count) ws1.Name = "current" 但是,它将“model”电子表格复制为“model(2)”,然后将第一个表格重命名为“current”,而不是第二个表格。 我需要一个代码来复制工作表并重命名复制的工作表。 谁能帮忙?

基于特定的名称结构组合工作表

Excel文件具有以下工作表结构: A1 A2 A3 A4 B1 B2 B3 C1 C2 C3 C4 C5 … 所以你可以看到4次A,3次B,5次C等(不均匀分布) 我想做什么: 1)将每种types的工作表(A,B,C等)的内容分别合并到新创build的总结工作表中。 我们假设以下是目标结构: AX A1 A2 A3 A4 BX B1 B2 B3等,而AX总结了A1到A4的内容, BX总结了B1到B3等的内容。 我有以下例程将所有工作表合并到一个汇总表。 Sub Combine() Dim i As Integer On Error Resume Next Sheets(1).Select Worksheets.Add Sheets(1).name = "XXX" Sheets(2).Activate Range("A1").EntireRow.Select Selection.Copy Destination:=Sheets(1).Range("A1") For i = 2 To Sheets.Count Sheets(i).Activate […]

为什么Excel有时会在表格名上加上$?

我发现有时但并非总是如此,Excel会在工作表名称的末尾放置一个$ ,但在Excel中没有看到,只有在尝试使用C#将其导入到SQL Server时才会出现。 我遇到了许多不同的场景。 它留下原始的工作表,但也创build了第二个空的“隐藏”的工作表与$在最后。 只有一个工作表,它有数据,但' $ '被追加到名称。 原来的工作表是在那里, $是另一个$_filteredDatabase附加副本。 (我能够发现_filteredDatabase是Excel存储“过滤”数据的地方。) 我问的原因是过去我已经能够告诉我的应用程序导入,如果只有1个工作表或如果不以$结束。 然而,有几次,我已经结束了“ worksheet$ ”和“ worksheet$_ ”。 所以我只是想知道是否有人知道什么是$或为什么/何时添加?