Tag: 工作表

在后台打开CSV文件并检索工作表名称

我的VBA项目包括清理数据库。 我正在使用一个用户窗体,这是我写到现在的代码。 我已经成功导入一个文件,但我仍然无法对其执行操作。 我需要你们向我展示如何获得我刚刚导入的.csv文件的工作簿名称和工作表,以便通过其工作簿名称和工作表名称开始分配引用数据库的操作。 我也很感激,如果你能告诉我如何保持我的用户表单顶部,或如何导入.csv文件而不显示它 码 Dim fNameAndPath As Variant Private Sub importedworkbook_Click() MsgBox "imported workbook : " & _ fNameAndPath End Sub Private Sub Importbutton_Click() fNameAndPath = Application.GetOpenFilename(FileFilter:="CSV Files Only (*.CSV), *.XLS", Title:="Select File To Be Opened") If fNameAndPath = False Then Exit Sub Workbooks.Open Filename:=fNameAndPath End Sub

Excel工作表索引

我有下面的代码,伟大的工程,但我想修改它,而不是用一个新的索引replace索引页的第1列,我宁愿在单元格C11开始范围。 现在,新的索引从索引表的单元格A1开始。 这里是代码: Private Sub Worksheet_Activate() Dim wSheet As Worksheet Dim l As Long l = 1 With Me .Columns(1).ClearContents .Cells(1, 1) = "INDEX" .Cells(1, 1).Name = "Index" End With 以上是我想要在单元格C11和下面显示的内容… For Each wSheet In Worksheets If wSheet.Name <> Me.Name Then l = l + 1 With wSheet .Range("A1").Name = "Start_" & wSheet.Index .Hyperlinks.Add Anchor:=.Range("A1"), […]

Excel何时以及如何重新计算公式?

据我所知,Excel可以设置为手动或自动重新计算公式,但是在阅读了互联网上的一些信息之后,我开始对Excel自动重新计算公式时会做什么感到困惑。 我以前认为Excel只会重新计算公式,当公式引用的单元格发生更改时,或者公式包含易失性数据(如TODAY()函数)时。 我的问题: 每次打开特定的工作簿(Excel文件)时,Excel是否会重新计算工作簿的所有公式? 当公式中引用的单元格发生更改时,excel是否仅重新计算所涉及的一个公式,或者Excel是否也会重新计算整个工作簿(或工作表)中的其他forms? 我提出这些问题的理由是: 我做了一个Excel工作表,跟踪我的炉石统计。 Excel文件中的工作表处理大量数据,并为每个单独的匹配添加数据。 其中一个工作表的一部分的示例如下所示: Match Date | Match Number | Match Type | Match Outcome | 6/10/14 50 Casual Win 6/10/14 51 Ranked Loss 6/10/14 52 Ranked Loss 6/10/14 53 Ranked Win 我不手动键入匹配号码,而是我有这个公式=(COUNT($E$3:E52)+1 。 因此,如果我在工作表中包含所有这些COUNT公式,并且每天都添加更多,Excel是否必须在每次打开Excel文件时重新计算每个COUNT公式? 每次在工作表中计算另一个公式时,Excel是否必须重新计算每个COUNT公式? 我担心如果有太多必须重新计算的公式,我最终会放慢Excel文件的速度。

超链接到实际工作簿中的现有工作表

我如何添加超链接到特定的单元格,并将其转换到excel文件中的工作表? 这是我已经得到: Cells(zeile, 1).Select Worksheets(1).Hyperlinks.Add Anchor:=Selection, Address:=Workbooks(1).Worksheets(fortnr), SubAddress:=Cells(1, 1).Address 谢谢

OleDB和一个美元符号

我pipe理一个导入Excel文档的旧应用程序。 它工作了很长时间,但大约6个月前,它停止了工作。 在搜寻了几个月的错误之后,我终于发现在Exceldocument的工作表名称末尾需要一个$ Exceldocument 。 问题是什么改变了这个要求? 新版本的Excel? 我知道我们从中得到这个文档的公司,升级了他们的Office套件,但是我还没有能够确认这是否是这个问题。 我们仍然得到.xls文件,所以它应该是我想的一样。 Office有什么事吗? 在此先感谢罗兰

如何只允许特定用户取消隐藏工作表

我已经有一个下面的macros,单击一个button,取消隐藏工作表,工作正常。 但是我想要这个macros被改变,所以只有两个用户(用户名是“JSMITH”和“DTAYLOR”)能够取消隐藏名为“Rates”的表。 如果其他人(其用户名不是上述两个中的一个)尝试取消隐藏工作表,我希望Excel显示“您无权打开此信息”消息。 此外,我需要确保只有那两个用户能够不使用vb​​a以传统的方式隐藏(例如通过右键单击可见工作表选项卡并select取消隐藏或从任何工作表选项卡select格式,工作表和然后取消隐藏)。 你可以请build议如何修改以下代码来完成上述所有的事情? 我想出了这个,但它不工作: Sub GoToRates_WS() Select Case Environ$("username") Case "jsmith", "taylor" Worksheets("Rates").Visible = True ThisWorkbook.Sheets("Rates").Activate Case Else MsgBox "you're not authorised to open this" End Select End Sub

如何返回到工作表一个macros调用?

我有一个复制在工作表之间移动的3个工作表上的button上的macros,此刻一旦macros命令完成,我已经设置为每次返回到第三个工作表。 是否有一个命令,我可以把代码,将视图返回到该macros被激活在第一个地方,而不是设置工作表。

Excel VBA:如何只允许macros进行单元格input

我目前正在做一个工作表,它应该使用不同的用户表单来执行任务和计算。 用户表单通过button调用。 所以用户的所有input都应该通过这些用户表单来完成; 实际的工作表应该只包含应该是只读的结果(对于用户)。 问题: 保护工作表也将阻止macros进行更改。 以下代码与保护工作表的问题相同。 Private Sub Worksheet_Change(ByVal Target As Range) If Not IsEmpty(Target) Then Target.Clear MsgBox "SomeAlertMSG" End If End Sub 任何build议如何做到这一点,而不使用自制的布尔标志?

下标超出范围 – 复制工作表到新的工作簿Excel

我正在尝试非常简单的过程,在这里我复制一个工作表到一个新的工作簿,如下面的代码所示: Private Sub btn_Documents_Click() Dim LastRow As Integer Dim printrange As Range Dim NewWorkbook As Workbook Set NewWorkbook = Workbooks.Add With NewWorkbook .Title = "Document Register" .SaveAs Filename:="some file path" & " Program documents status.xlsx" End With Workbooks("COFFIE Project Tracker V2.0.0.0").worksheets("Document Register").Copy Before:=NewWorkbook.Sheets("Sheet1") Unload Me frm_Control.Show End Sub 这个确切的代码已经为我以前的工作,但是,这次是在代码的复制行上抛出一个下标超出范围的错误。 我已经仔细检查了文件名,我正在复制的工作表的名称,这是完全正确的,所以我现在不知道为什么它会抛出这个错误。

工作表位置超出范围。 连接已closures。 使用EPPLUS时

我试图打开一个XLSX文件作为模板(我甚至使用了一个空白的XLSX文件),使用EPPLUS 4.0.3。 如果我不打开模板文件(空白或真实的),只是创build一个新的工作簿,并创build工作表,它工作正常。 或者如果我打开模板文件,并创build一个新的工作表,那么它工作正常。 只有当我尝试访问模板中的第一张表格时,出现错误: 工作表位置超出范围。 像这样访问第一个工作表: workBook.Worksheets.First() 。 首先不再是一个定义。 所以我尝试访问第一个工作表的名字和这个方法workBook.Worksheets[1]使用0和1来尝试获取第一个工作表。 我的代码: var existingTemplate = new FileInfo(_ExcelTemplateFilePath); using (ExcelPackage p = new ExcelPackage(existingTemplate)) { // Get the work book in the file ExcelWorkbook workBook = p.Workbook; ExcelWorksheet ws = workBook.Worksheets[1]; // MY OTHER EXCEL CELL CODE HERE }} 有谁知道如何访问第一张和Excel文件?