我用C#创建了一个新的Excel文件.
当我打开文档时,所有工作表都从右到左对齐.
如何对齐工作表/工作簿/窗口以从语法上从左到右显示?
我使用Excel 2007与一个有很多工作表的工作簿.我需要在上次保存工作表的日期 - 在页脚中.我找到了以下内容:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
With ws.PageSetup
.LeftFooter = "Last Save Time: &T"
.RightFooter = "Last Save Date: &D"
End With
Next ws
Set ws = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
这会更改每个工作表.我需要它只更改已编辑的工作表(因此每个工作表可以有不同的日期).这甚至可能吗?我应该使用单元格而不是页脚吗?或者我是否必须创建多个工作簿?
谢谢!
真的不确定要放置什么堆栈站点.随意将其移动到正确的.我的问题与编程无关,但我在幻灯片中嵌入了这些"工作表对象",有很多功能点.有些似乎是excel中的图形以及Visio中的其他图表类型项目.我需要将所有这些"工作表对象"转换为幻灯片中的图像.
我现在的过程是复制对象>粘贴为图像>移动到正确的位置>删除"工作表对象".这是一个非常耗时且乏味的过程.有没有我可以编写的宏或可以自动转换所有这些对象的东西?我到目前为止尝试使用谷歌搜索并没有运气
是否可以使用VBA查询工作表?

我希望能够选择时间列中的所有值,即(00:00)那天等于例如:星期六
我有任何方法可以做到这一点,教程将非常有用.
谢谢
我有一个Excel 2010工作簿。一个工作表从外部数据连接(SQL查询)导入数据。我还向工作表中添加了其他列,以对数据进行计算并对其进行调整。该工作表构成了其他工作表中使用的原始数据的基础。
我想保护工作表使其为只读(允许排序,过滤器,数据透视表使用)。我知道如何使用保护工作表功能来做到这一点。但是,当工作表受到保护时,我不能使用“刷新”按钮来刷新源中的数据,我希望用户能够执行此操作。我打算将连接属性配置为在打开时自动刷新并允许手动刷新。
有没有人找到一种优雅的方式来启用保护工作表功能并启用外部数据刷新,而又不允许用户自己更改单元格值?
我有两个工作簿,它们的工作表在逻辑上应该看起来相同。我不想手动维护它们的相同性,所以我想动态链接它们(就像你在单元格之间使用公式:“=A1”所做的那样)。我想链接整个电子表格,而不仅仅是几个单元格。
有没有办法在不制作 238427398729 公式的情况下做到这一点,从而使我的机器崩溃?有没有办法说“=sheet2”作为定义整个工作表内容的公式?
我有一个工作簿,主页用于输入,主表中的值根据主表中"类型"列的单元格值复制到2个子表.
子工作表中"注释"列中针对这些复制单元格的任何值都将作为注释添加到主工作表的相应行中.当子工作表中"注释"列中的值一次删除时,我想识别此操作之前的非空单元格并删除主工作表中的相应注释.
目前我已经编写了代码,如果在子表单的"注释"列中添加/删除了一个值,然后在主页的相应条目中添加/删除注释.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim temp As String
Dim tem As String
With Target
If .Count = 1 And .Column = 8 And .Row < 600 Then
tem = .Row
If Sheets("Parts- input").Cells(tem, 8).Comment Is Nothing Then
If Sheets("Pins").Cells(.Row, .Column).Value = "" Then
Sheets("Parts- input").Cells(tem, 8).Comment.Delete
Else
Sheets("Parts- input").Cells(tem, 8).AddComment "Lifts Sheet: " & Sheets("Pins").Cells(.Row, .Column).Value
End If
Else
If Sheets("Pins").Cells(.Row, .Column).Value = "" Then
Sheets("Parts- input").Cells(tem, 8).Comment.Delete
Else
Sheets("Parts- input").Cells(tem, 8).Comment.Text "Lifts Sheet: " …Run Code Online (Sandbox Code Playgroud) 我在下面有这个代码会自动选择一个范围.有谁知道如何添加代码来创建所选范围的表?
谢谢!
Sub DynamicRange()
'Best used when first column has value on last row and first row has a value in the last column
Dim sht As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range
Set sht = Worksheets("Sheet1")
Set StartCell = Range("D9")
'Find Last Row and Column
LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
LastColumn = sht.Cells(StartCell.Row, sht.Columns.Count).End(xlToLeft).Column
'Select Range
sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Select
End Sub
Run Code Online (Sandbox Code Playgroud) 我搜索了文档Office Excel API,但根本找不到任何提及,它是如何实现的。
问题:
幸运的 API 功能或某种错误可以通过 VBA 宏轻松解决。
但是,要做到这一点,我们只有两种可能性:
手动将宏插入到工作表中,这将在工作表上捕获一些事件,并且来自插件的 JS 将触发该事件(此解决方案来自非常古老的论坛(如果我能找到链接,我将在此处插入))。
在插件运行时通过JS代码插入宏到工作表(context.workbook.worksheet?),甚至它也不能被插件执行,但在这种情况下,最终用户根本不需要管理宏——我们可以进行宏的处理使用相同的逻辑运行更流畅(JS 将宏插入工作表中,更改工作表中的一些值,然后触发一些宏,然后(例如在 JS 中超时或仅通过 JS 中的另一个事件我们可以轻松删除整个带有此宏的工作表))。
所以问题是,是否有可能以某种方式使用 Excel API 制作类似于解决方案 2 的东西?(从插件插入/删除VBA代码的某种功能)
我将不胜感激任何帮助!
说明问题的例子
我正在使用 JavaScript API,但不幸的是,该 API 并没有涵盖 VBA 中已经存在的全部功能(我希望还没有)。让我用一个简单的例子来解释它:
想象一个任务:
我们需要从工作簿 1 的工作表 1 中复制一些信息
然后我们需要创建一本书并将值放入新工作簿 2
然后我们需要向用户建议需要保存它(新工作簿 2)的位置。
然后我们需要保存并关闭工作簿 2。
VBA 很容易解决这个问题,但在 JS API 的情况下 - 这个问题没有完整的解决方案(没有第三方应用程序)。
您可以通过以下链接比较 API JS 和 VBA:
所以我想要做的 - 是在 JavaScript 中编写实际的 VBA 宏并将这个 VBA 宏插入到工作表中以使宏可执行。
如何通过工作表上的某些值更改使宏可执行?
我发现,如果您调用select方法直接应用于单元格并Worksheet_SelectionChange …
worksheet ×10
excel ×7
vba ×6
excel-vba ×3
c# ×1
comments ×1
direction ×1
dynamic ×1
excel-2010 ×1
footer ×1
listobject ×1
office-js ×1
overwrite ×1
powerpoint ×1
protection ×1
r ×1
reference ×1