我从Outlook编写了一个宏来打开Excel。
下面的代码:
Public Sub OpenMasterPM()
Dim xExcelFile As String
Dim xExcelApp As Excel.Application
Dim xWb As Excel.Workbook
Dim xWs As Excel.Worksheet
Dim xExcelRange As Excel.Range
xExcelFile = "C:\Users\andrea.vighetti\Documents\Banca5\Evolutive\Mast
我有一个excel外接程序,我希望它在打开模板时运行某些宏。如果我打开excel,然后手动运行auto_open子程序,但在打开excel时抛出“运行时错误9.下标超出范围”,则运行良好。
似乎加载项正在加载并试图在模板加载之前运行,因此在尝试引用工作簿中的特定工作表时,无法找到任何内容。
具体而言,错误出现在
Set shtData = Workbooks("Example_Template.xlsm").Worksheets("Test")
加载工作表后,如何强制auto_open宏运行?
我的自动打开代码是:
Sub Auto_Open()
Set
我一直在用Excel构建我的第一个VBA数据库应用程序。我已经创建了我的表单"Frmweeklytimesheet“,它捕获了一些输入的数据,并将这些数据移动到同一工作簿中的工作表2。
我希望能够打开此工作簿并从“功能区”初始化表单。因此,我自定义了功能区并添加了一个按钮,该按钮被链接以运行打开工作簿的宏CallTimesheet -这是用于此操作的代码。
Sub CallTimesheet()
Dim FilePath As String
Workbooks.Open "S:\Shanes Stuff\Excel Data Base Stuff\TestDataBase
我曾尝试使用许多站点建议的代码,在打开Excel工作簿时自动运行宏列表。附件是我在ThisWorkbook上的VBA代码:
Private Sub WorkbookOpen()
MsgBox "STOP! Do NOT attempt to highlight any fields manually!" & vbCrLf & _
"Any highlighting will be overwritten upon reentry of this workbook.", vbOKOnly +vbExclamation
Ca
我在我的excel工作簿的模块1中定义了此公共子项
Public Sub AutoUpdate()
Application.OnTime TimeValue("22:40:00"), "GetTime"
End Sub
在我的工作簿代码中,我调用了这个AutoUpdate方法。
Public Sub Workbook_Open()
Call AutoUpdate
End Sub
我的问题是,当我打开文件时,它的时间是22:40:00,它调用"GetTime",但第二天excel要么崩溃,要么函数不再被调用。此Application
抱歉,我刚开始学vba,需要一些指导。打开excel文件后,我想运行自动调整合并单元格的高度。
我找到了自动调整合并单元格高度的代码,这是我尝试过的,它可以工作。我还找到了假设允许宏在每次打开Excel文件时运行的代码。但是,我很难将两者结合起来。
自动调整单元高度的代码
Option Explicit
Public Sub AutoFitAll()
Call AutoFitMergedCells(Range("I13:L13"))
End Sub
Public Sub AutoFitMergedCells(oRange As Range)
Dim tHeig
我在Excel中有Combo box,我有以下VBA代码。但现在可以在打开excel时工作。
Sub worksheet_activate()
mapping.clear
mapping.Additem "File to Table"
mapping.Additem "Table to File"
End Sub
现在,告诉我如何在打开excel时自动加载组合框。
我有一个excel文件,当文件打开时,它会打开一个消息框。然而,当我打开文件时,由于消息框的原因,文件和它的消息框不会出现在我的窗口前面获得焦点(它们出现在我的任务栏上,我必须从那里点击它)。消息框完成后,文件照常获得焦点。
在最简单的形式中,这段代码似乎触发了这一点
Sub Auto_Open()
MsgBox ""
End Sub
我曾尝试在执行messagebox之前添加代码以使窗口获得焦点,但没有成功。我不介意这个问题,但是其他人会使用这个文档。对此有解决方案吗?
我已经创建了一个宏(在stackoverflow上找到)来显示工作表中excel文件的最后修改日期:
Function LastModified() As Date
LastModified = ActiveWorkbook.BuiltinDocumentProperties("Last Save Time")
End Function
但是,包含'=LastModified()‘的单元格只有在我单击公式栏并按enter时才会更新。公式设置为自动。
我希望它在每次打开excel工作表时自动更新-这是可能的吗?
提前感谢:)
最大值
当excel基于文件名打开时,我试图有条件地启动用户表单。但是,我认为在文件完全启动之前代码正在运行,这给了我一个错误。
Private Sub Workbook_Open()
Dim name As String
name = ActiveWorkbook.FullName
If InStr(name, "Export Checksheet") > 0 Then
UserForm1.Show
End If
End Sub
在一个已经打开的文件上测试它可以正常运行,但是试图让它在文件打开时自然运行会导致运行时错误'9
目前,我已经在工作表1 "Sheet1“中创建了VBA代码,作为
Private Sub Worksheet_Activate ()
所以每次我打开工作表时,VBA代码都会自动运行。
但我现在面临的问题是每次打开Excel工作簿时,即使我在ThisWorkbook中添加了代码,
Private Sub Workbook_Open()
Worksheets("Sheet1").Activate
End Sub
工作表将首先出现,但VBA代码不会自动运行。每次我需要转移另一个工作表,然后再移回来,然后只有VBA代码才会运行,这是非常恼人的,有什么解决方
Private Sub CommandButton1_Click()
...
Set wb = Workbooks.Open(Filename:="C:\book1.xls")
If MsgBox("Please Review the Transmittal sheet, if satisfied click Yes to send, No to cancel." & vbCrLf & "Transmittal Number: " & Transm, vbYesNo) =
我写了一个makro,我想在打开工作簿时直接运行它。它可以工作,但是,宏在真正的电子表格完全打开之前启动,并且我只在makro运行的整个过程中看到Excel飞溅。 我应该提一下,我是通过Windows任务计划程序打开工作簿的。打开文件后,宏将执行循环,并使用SAP分析插件打开正在更新外部数据的其他Excel文件的列表。 我使用宏作为计划任务调用电子表格来更新数据,然后再次自动关闭它: Private Sub Workbook_Open()
If Range("start_on_open").value = "YES" Then
Call
Excel 2016 (或365)似乎不能可靠地或更准确地触发Workbook_Open()子函数,一点也不!简单事件sub
Private Sub Workbook_Open()
MsgBox "Work book is open"
End Sub
似乎不起作用。但是,如果工作簿已打开,然后打开包含上述Sub的工作簿,则它将按预期运行。我注意到,与Excel 2010不同,2016 (365)在各自的窗口中打开每个工作簿,而不是在Excel应用程序窗口中打开工作簿窗口。这是2016年的一个bug吗?有解决方法吗?
我已经为我自己的应用程序设计了一个解决方案,那就是调用
我已经设置了一个新的、空的、无模式的用户表单,用最少的代码来解决我的问题。
当打开工作簿时,将执行以下代码以隐藏Excel并显示用户表单。这是工作簿的唯一代码。
Private Sub Workbook_Open()
UserForm1.Show
If Application.Windows.Count <> 1 Then
Application.Windows("test.xlsm").Visible = False
Else
Application.Visible = False
End If
En
我在(10.10.5)上为Mac 2011 (14.5.9版)使用Excel。如果我从码头启动Excel,它就会弹出"Excel工作簿库“对话框。如果通过双击Finder中的现有工作簿启动Excel,Excel将按预期打开工作簿。
但是,如果我安装一个名为"hello_world.xlam“的简单外接程序,这些行为就会改变。外接程序只有一个标准的VBA模块("Module1"),只有这个宏:
Sub Auto_Open()
MsgBox "Hello World"
End Sub
无论Excel如何启动,都会显示消息框。然而,Excel似
我有几张表,我想在早上打开(使用一个批处理文件,打开excel工作表,并保持前面的位置和窗口的大小)。例如,下面是打开其中一个工作表的代码(稍后我将将其应用于其他工作表)。
下面是我的VBS脚本代码:
'FILENAME: OpenSheets.vbs
Set Shell = WScript.CreateObject("WScript.Shell")
Shell.Run "C:\Users\xyz\Desktop\test.xlsm", 4, False
以下是我的CMD代码:
@echo off
cscript OpenSheets.vbs
cd C
我正在尝试通过批处理文件打开excel宏的UserForm1。我可以打开它,但excel也会随之打开。我只想打开UserForm1,而不是excel。下面是我的方法:
我已经编写了一个宏来打开UserForm1
Sub open_form()
UserForm1.Show
End Sub
在批处理文件中:
@echo off
cd "c:\Test\"
openFormTest.xlsm
通过上面的方法,当我运行批处理文件时,UserForm1和excel都打开了,但我只想打开UserForm1。请帮帮我
我正在编写vba,它操作工作表中的数据,但是,每当打开工作簿时,我都试图让它运行。
我遇到的问题是,由于工作簿(代码需要在上面运行)每次都是不同的/新的,所以我需要auto_open代码在个人宏工作簿中。
Sub Auto_Open()
Dim bookname As String
Dim checkbook As String
Dim Workbook As Workbook
For Each Workbook In Application.Workbooks
bookname = Workbook.Name
checkbook = Left(bookname, 3)
If chec