在MS 2007宏中,我希望在开始更新之前将工作簿(其中包含宏)保存到另一个工作簿中。但是,当我执行SaveAs时,当前的工作簿变成了保存的工作簿,而不是我一直盯着的原始工作簿。
假设我以工作簿"A.xlsm“开头,然后在工作簿"A.xlsm”中发出命令
With ActiveWorkbook
.SaveAs FileName:=ThisWorkbook.Path + "\" & "B.xlsm"
Close 0
End With
活动工作簿中的任何更改都出现在工作簿"B.xlsm“中,而不
我一直在寻找StackOverflow来解决这个问题,我已经快解决了,但我似乎无法解决我的最后一个问题:只将一个特定的工作表保存到一个新文件中。基本上,我想做的是:
用户单击和“存档数据”按钮
提示用户选择filepath和"SaveAs“一个新的Excel工作簿
代码将复制当前工作表中的数据范围。
代码将该范围粘贴到"SaveAs“中指定的新Excel工作簿中。
我的问题是,它保存了整个工作簿,并且我无法复制、粘贴/保存所需工作表中的特定范围。如果您有任何问题,请查看代码以供参考。
Sub ArchiveData()
Dim ThisFile As
在打开附加的工作簿之前,我使用Outlook上的代码隐藏Outlook上的鼠标光标:
Private Declare Function ShowCursor Lib "USER32" (ByVal fShow As Integer) As Integer
Public Sub hide_Cursor()
ShowCursor False
End Sub
打开附加文件后,我需要做相反的操作(在Outlook上显示鼠标光标)。
打开附件文件后,我没有在Outlook上找到要运行代码的任何事件。
因此,我需要从Excel工作簿中运行以下代码。
它没有效
我正在尝试用现有工作簿中的数据创建一个新的工作簿。现有的工作簿非常大,所以我将其作为只读工作簿加载。因此,我需要遍历行,但我似乎无法弄清楚如何做到这一点,并将数据输入到新的工作簿中。同时,数据来自A列,只有当B列中的单元格说"IL“时,数据才会放入新的工作簿中。
for row in existing_sheet.iter_rows(min_col=2, max_col=2):
for cell in row:
print("CHECKING IF IT IS IN IL")
if "IL" in str(cell
当使用.xla()方法关闭“外接程序”工作簿(Workbook.Close)时,我会收到此错误:
error 1004:
"This workbook is currently referenced by another workbook and cannot be closed."
我关闭了从VBA编辑器中可见的所有其他工作簿。现在,“外接程序”工作簿是唯一打开的工作簿,但我仍然收到ThisWorkbook.Close()的错误。用“停止按钮”重置VBA编辑器中的项目没有帮助。
为什么Excel认为此工作簿当前由另一个工作簿引用?(编辑:没有其他工作簿,我全部关闭了。此时,只
当试图打开工作簿文件时,我会得到以下错误。
The process cannot access the file '.. File.xls' because it is being used by another process。
如果文件已经打开,而不是再次打开该文件,我如何将该工作簿向前推进。
抄录自OP的评论:
Excel在前面。问题是,我以编程的方式打开了一个WorkBook,来到了前面。现在,我对旧的工作簿做了一些工作,再次单击按钮打开已经打开的工作簿。现在因为它的开放,给了我一个例外。所以,我不想让那张旧床单出现在我面前。
目前,我正在试图找出如何让我的代码自动保存和关闭打开的工作簿,以避免vba项目工作簿而不命名vba项目工作簿。是否有一种方法可以让您的代码识别vba工作簿与我试图保存和关闭的其他打开的工作簿?
Option Explicit
Public ThisFile As String
Public Path As String
Sub CloseAndSaveOpenWorkbooks()
Dim Wkb As Workbook
Path = [D1]
With Application
.ScreenUpdating = False
希望有人能帮我。
我在一个用户表单(Listbox1和Listbox2)中有两个列表框,在Listbox1中我可以获得工作簿中所有可见工作表的名称。在Listbox2中将是我在Listbox1中选择的工作表,以便复制到新的工作簿中。
Listbox1作品的填写,将图纸名复制到Listbox2作品中。我在Listbox2中选择工作表名称,然后使用以下代码将这些工作表复制到新的工作簿中。
For K = 0 To ListBox2.ListCount - 1
If ListBox2.Selected(K) Then
Worksheets(ListBox2.List(K, 0
我正在建立一个excel工作表。在本页中,用户只能在一定范围内与单元格交互,例如。("A1:B10")因此,我将这些单元格设置为“解锁”单元格,密码保护整个工作表,选项仅允许用户“选择未锁定的单元格”。
我要面对的一件事是,虽然工作表受到密码保护,但它需要有能力允许用户从外部源粘贴数据。如何在工作表保持密码保护的情况下启用粘贴功能?
更新:
这在启用宏的工作簿中。
我使用了以下代码来启用和禁用工作簿中的某些功能。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
A
我有一个用户表单,没有几个按钮可以运行不同的宏。在宏执行结束时,它会隐藏用户。我用以下代码重新设置了userform的“关闭”按钮:
Private Sub UserForm_QueryClose _
(Cancel As Integer, CloseMode As Integer)
' Prevents use of the Close button
If CloseMode = vbFormControlMenu Then
hmm
Cancel = True
End If
End Sub
嗯,隐藏用户。现在的挑战是假设有3个工
我需要帮助
找出如何迭代当前打开的Excel外接程序文件(.xla),这些文件尚未使用Tools > Add-ins菜单路径在Tools > Add-ins中注册。
更具体地说,我对没有出现在外接程序对话框中但有ThisWorkbook.IsAddin = True的任何工作簿都感兴趣。
展示这一问题:
尝试按下面的方式循环工作簿不会在.AddIn = True中获得工作簿
Dim book As Excel.Workbook
For Each book In Application.Workbooks
Debug.Print book.Name
Next
我编写了一段代码,如果范围"D14:K70"在整个工作簿中为空,则将删除工作表,但我不知道如何忽略“-”另外,我在Sheets(i).Delete有个问题
Sub DeletingEmptyPages()
Dim i As Long
For i = Sheets.count To 1 Step -1
If WorksheetFunction.CountIf(Sheets(i).Range("D14:K70"), "") >= 368 Then
If Sheets.count > 1 Then
我有两本谷歌工作表。在未命名的电子表格工作簿上,当预告片出现在B列时,我希望Colm B上的链接出现在"links“工作簿上的第一列”未命名电子表格“上。
我有这个
=QUERY(IMPORTRANGE("I will put the http for the Link spreadsheet here ,"Sheet!!A1:B")
我有以下代码:
Dim DumpXlApp As Excel.Application = New Excel.Application
Dim DumpWkBk As Excel.Workbook
DumpWkBk = System.Runtime.InteropServices.Marshal.BindToMoniker(FilePath)
DumpXlApp = DumpWkBk.Parent
DumpXlApp.Visible = True
我无法使DumpWkBk工作簿可见。issue DumpXlApp = DumpWkBk.Parent行吗?我不认为这是BindToMoniker行,
我创建了一个用宏自动执行的工作簿,我想复制整个工作簿并将其粘贴到另一个工作簿中,然后删除除公式以外的所有宏(包括表单控件)。 我的代码是复制工作簿、粘贴到另一个工作簿(包括公式)并删除宏。但是表单控件仍然继续出现在新的工作簿中。我需要添加什么代码?请帮帮我。我的代码写在下面: Private Sub Label16_Click()
Unload Me
Dim NewWkb As Workbook
Dim xWkb As Workbook
Dim x A
我有一个不能工作的函数,但我认为应该是这样的:
Function getdata()
getdata = range("'\\location\on\my\computer\or\network\drive\[Data.xlsm]data'!$A$1")
End function
如何使它工作,以便在我的工作簿中键入"=getdata“,然后从未打开的工作簿中提取数据?
可能很明显,我不想打开源代码工作簿来获取数据,但对于将其包含在链接文件列表中会产生矛盾。
我为一个包含6个工作表中的12个数据透视表(PT)的工作簿编写了下面的子文件,所有工作表都指向相同的外部源(另一个工作簿)。它工作得很好,除了如果我想手动刷新一个透视,Excel告诉我我需要打开源文件。如果我随后打开透视的源文件,刷新工作正常。
我更喜欢在后台刷新数据透视缓存,就像以前一样。我错过了什么?
Sub ChangePivotSourceData(src As String)
Dim pt As PivotTable, wks As Worksheet, pc As PivotCache
'update #1 pt in PIVOT AF
Shee