为了我的目的,我有一个很大的宏,我正在修改。宏的作者比我更熟练。目前,该宏对从网站和其他电子表格收集的数据运行公式。
我所要做的就是将“红色标记”范围复制并粘贴到同一个新的工作簿中。不需要保存新的工作簿就能做到这一点吗?
我最初的想法是:
Sub CreateNewWB()
With Application
.SheetsInNewWorkbook = 1
.Workbooks.Add
.Sheets(1).Name = "Late"
End With
Set ptrToLate = Applicat
我得到了一个主工作簿,它用特定的工作表和头创建了一个新的工作簿,它不会保存工作簿,因此它将是一个随机名称,比如Book1或Book2。这部分是成功的。接下来要做的是打开一个文件,并将打开的文件的数据复制到创建的未保存的工作簿("Book1“或任何名称)。
问题是我无法在源代码数据工作簿(打开的文件)和未保存的工作簿之间切换窗口。我尝试过windows(“工作簿名”).activate,但它只适用于特定的名称。我需要激活未保存的工作簿。总之,我已经打开了3本工作簿。
Sub CopyData()
Dim Newbook As Window
Dim wb As Wo
在MS 2007宏中,我希望在开始更新之前将工作簿(其中包含宏)保存到另一个工作簿中。但是,当我执行SaveAs时,当前的工作簿变成了保存的工作簿,而不是我一直盯着的原始工作簿。
假设我以工作簿"A.xlsm“开头,然后在工作簿"A.xlsm”中发出命令
With ActiveWorkbook
.SaveAs FileName:=ThisWorkbook.Path + "\" & "B.xlsm"
Close 0
End With
活动工作簿中的任何更改都出现在工作簿"B.xlsm“中,而不
我使用以下代码以编程方式创建新的工作簿:
'Adding a new workbook
Workbooks.Add
'Saving the new workbook
ActiveWorkbook.SaveAs newFilePath
'Closing the new workbook
ActiveWorkbook.Close
我想知道如何设置列名,换句话说,如何在工作簿中写入,然后再关闭它。
这个宏继续将文件夹中的文件合并到当前打开的工作簿中。我正在尝试打开一个新的工作簿,并将它合并到新的打开的工作簿中。我不确定需要在哪里激活新打开/添加的工作簿,以便在该文件中进行合并。
Sub MergeWorkbooks()
Application.DisplayAlerts = False
Workbooks.Add
ActiveWorkbook.SaveAs FileName:="C:\ ....\Merged Files.xlsx"
Dim FolderPath As String
Dim Filename As String
Dim Sheet As Worksh
我可能有一个简单的问题,但我不知道哪里出了问题。我正试图在excel中创建一个大宏,它将对多个文件执行多个操作。背景:
我正在运行宏的excel工作表在它自己的文件夹中。我已经用这个结构设置了一个小的测试文件夹: C:\Users\schris\Desktop\Eprime \
该文件夹中有两个文件夹:
- \Master Dataset\
- In this folder is where the excel file with the macro is
- \Eprime Processing\
- There are three folders in th
Dim MyFolder As String
Dim MyFile As String
MyFolder = "C:--"
(leaving out the file path)
MyFile = Dir(MyFolder & "\*.xlsx")
Do While MyFile <> ""
Workbooks.Open fileName:=MyFolder & "\" & MyFile
MyFile = Dir
Loop
(see paragraph below)
Wor
下面的宏从列表中打开一系列工作簿,然后从其中复制一些数据。它在第一个工作簿上运行良好,但在第二个工作簿上崩溃。我尝试过更改顺序,但总是第二个工作簿导致它崩溃。
Sub ImportData()
Dim lastRow As Long
Dim lastSumRow As Long
Dim j As Long
Dim k As Long
With ActiveSheet
lastRow = ActiveSheet.Cells(1048576, 1).End(xlUp).Row
End With
For k = 2 To las
我试图获得一个子例程,从一个工作表中获取电子邮件地址列表,然后在同一个工作簿中选择一个不同的工作表,并将它附加到电子邮件中。
下面的代码用我需要复制的工作表创建一个新的工作簿,然后进行调试;
运行时错误“53”:未找到文件
并且没有打开Outlook电子邮件。
Sub SendAttachment()
Dim OutApp As Object
Dim OutMail As Object
Dim emailRng As Range, cl As Range
Dim sTo As String
Dim FileExtStr As String
是否有一种方法可以自动适应正在数组中创建的新工作簿的列宽度?我已经尝试过标准的ws.columns.AutoFit,但是在保存新工作簿之前,它并没有对它们进行处理。这是从一个主文件中分离工作簿的最后一个循环。
'Loop through the array of unique field values, copy paste into new workbooks and save
For ArrayItem = 1 To UBound(ArrayOfUniqueValues)
ws.ListObjects("Data").Range.AutoFilter Fie
从Personal.xlsb文件中,我希望VBA将当前活动的工作簿保存为同一个目录中的用户可定义名称,并删除原始工作簿。
下面是我的密码。它有两个问题。第一,由于某种原因,它将工作簿保存在“我的文档”文件夹中。活动工作簿不在我的文档中。它在一个完全不同的驱动器中的文件夹中。第二,它抛出一个“文件未找到”错误。
Sub RenameFile()
Dim thisWb As Workbook
Set thisWb = ActiveWorkbook
MyOldName = ActiveWorkbook.Name
MyNewName = InputBox("What do you want t
我正在尝试弄清楚如何将数据从一个excel工作簿复制到另一个。最终目标是自动创建登录工作表-我在一个工作簿中有关于学生的信息,并且我想创建一个新工作簿,该工作簿将以不同的顺序包含相关列。我试图弄清楚如何使用不同的方法从一个工作表复制到另一个工作表,但我总是得到错误消息。下面是我使用的代码:
Option Explicit
Sub signinsheet()
Dim newbook As Workbook
Dim ldate As Date
Dim center As Variant
Dim title As Variant
Dim original As Variant
Dim pastebo
尝试在UNAPP宏后激活活动工作簿,但(如果打开了许多工作簿)总是激活最后打开的工作簿,并且每次都在切换(上一个工作簿到Activeworkbook),我需要始终激活从中调用代码的工作簿。 Sub App()
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.EnableEvents = False
.Calculation = xlManual
.Visible = False
End With
End Sub
Sub unApp()
尝试提示用户打开工作簿,然后对其进行更改,并将其保存为用户打开工作簿的相同路径下的新工作簿。同时,保持用户打开工作簿不保存/不更改并关闭它。
下面是我的代码,但是失败了--新的工作簿是空的,用户打开的工作簿没有关闭。
Sub saveas()
R = Application.GetOpenFilename _
(Title:="Please choose file", _
FileFilter:="Excel Files *.xls*; *.csv (*.xls*; *.csv),")
Set extwbk = Workbooks.Open(R)
If R =
我正在尝试将三个工作表(两个工作表是数据透视表,一个是这些数据透视表的源数据)从一个工作簿复制到新工作簿。
下面的代码将所需的工作表复制到新工作簿并保存它(修改后的):
Sub ExportFile()
Dim NewName As String
Dim nm As Name
Dim ws As Worksheet
With Application
.ScreenUpdating = False
On Error GoTo ErrCatcher
' Array of sheets to copy
我到处寻找答案,却找不出答案。我正在寻找一种方法来关闭和保存工作簿自动午夜每天午夜,因为它有重要的信息,人们不断丢失,因为他们没有保存。我已经关闭和保存部分,如果我手动单击X关闭Excel,但我不能让它在预定的时间完成它。我使用过Application.OnTime,但没有成功。下面是我用来关闭和保存工作簿的代码。如果工作簿仍然打开,我只需要代码让它在午夜运行。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheet1.Activate
Sheet1.Range("AB18:AD18").Select
S
我正在努力导出workbook.With中的一个工作表--我能够做的以下代码--我试图导出的工作表--使用公式在workbook.When中检索其他工作表中的数据--我更改主工作簿中的值,导出的工作簿还可以只使用值导出工作表吗?
Private Sub SAVE()
On Error Resume Next
location = Sheets("data").Range("j2").text
date= Application.text(Now(), "dd/mm/yyyy")
Ad = CreateObject("wsc
我是vba编程的新手,我对如何在工作表之间导航感到困惑。我有一个包含单个工作表的工作簿,该工作表被复制到一个新工作簿中,以便可以在不损坏原始工作簿的情况下对其进行编辑。我遇到的问题是,当创建新的工作簿时,我需要从第三个工作簿复制信息并将其粘贴到新的工作簿中。我试过很多方法,但都没能弄明白。我认为问题是新书没有名字,只有Book#,所以一旦我离开去激活另一本书,我就没有一条可靠的返回路径。
很抱歉,我没有一个实际的例子。我已经根据我收到的响应添加了前2行。
Dim wb As Workbook
Set wb = ActiveWorkbook
' Open the 3rd
我正在为Microsoft 365使用Excel。
在Excel的某些早期版本中,我用来在工作簿(称为工作簿A)中进行编辑,选择SaveAs,重命名文件(称为工作簿B)。
然后我可以打开工作簿A并发现它处于预编辑状态,而工作簿B随编辑一起保存。
下面的代码使用工作簿B中的编辑保存工作簿A。
我想保持工作簿A不变。
Sub NoticeGenerator()
Dim wxhS As Worksheet, wbkT As Workbook
Const TABCOLOR As Long = 192 'Standard Tab color Dark Red
'Hides an
将数据直接从Excel中的活动工作表导入SQL Server数据库的最快方法是什么?
我已经取得了巨大的成功,只需循环遍历行和列,生成SQL字符串,打开ADODB.Connection并执行SQL。然而,这种解决方案对于大型数据集来说太慢了。
所以我正在用ADO测试Jet提供程序。它绝对更快,但它需要保存工作簿,并且我不能要求用户在上传之前保存工作簿。
如果工作簿已保存,则以下代码有效,但如果从未保存过ActiveWorkbook,则ActiveWorkbook.Path将返回空字符串,并且代码将失败。
Sub UploadViaJet()
Dim objADO As New ADO
我有一个从网站创建的工作簿导入数据的工作簿。当网站创建工作簿时,它们会自动在新窗口中打开,并且工作簿的名称始终会更改。我使用
ActiveWindow.ActivateNext
其中一个工作簿必须在受保护的视图中打开,因此我使用
Application.ActiveProtectedViewWindow.Edit
以允许在导入前对其进行编辑
我可以单步执行宏,它可以工作,但当我运行它时,我总是得到“运行时错误'91':对象变量或块变量没有设置。我点击调试和播放,程序结束时没有问题。”
完整的代码如下所示;
Sub Data()
Dim Here As String
Dim Wh
我正试图在excel带状上创建一个重复按钮,当单击该按钮时,将创建活动工作簿的重复文件,但我希望它创建一个重复文件,其中只有前两个工作表复制在重复文件中,而不是整个活动工作簿。
我尝试了以下获得重复文件的代码:
Sub DupliquerFeuille(control As IRibbonControl)
Dim Sourcewb As Workbook
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
我有一段代码,其中我将几本工作簿中的数据放在一起。需要根据源将每个工作簿的数据添加到特定的范围中。为此,我使用文件的部分名称作为条件嵌套了一些IFs,并给出了将值发送到所需范围的操作,但是当我运行代码时,它只打开所有工作簿而不执行任何操作。我已经做了一些研究,但没有找到任何帮助我解决问题的方法。
Sub Update_Database()
Dim directory As String
Dim fileName As String
Application.ScreenUpdating = False
With Application.FileDialog(msoFileDialogFol
我想阅读一本工作簿,并在另一本工作簿中复制一些单元格。代码的目的是将不同工作表中的单元格从一个文件复制到另一个文件。
为此,我创建了以下代码:
Sub processCopy(file)
'Abrir documento
Workbooks.Open Filename:=file, UpdateLinks:=0
cantn = ThisWorkbook.Sheets.Count
cantv = Sheets.Count - 5
cantn = cantn - 4
'Recorrer los libros del documento abierto
For i = 1 T
我试图从文件夹中的每个工作簿上的每个工作簿上复制两个单元格B2 & C2,然后从单元格A1, A2, A3 etc开始在主工作簿中粘贴单元格
我得到了错误Subscript out of range,它没有突出显示任何特定的内容,但我假设这是因为运行宏的工作簿没有'Results'工作表。
它正在打开正确的工作簿Workbooks.Open (Filepath & MyFile),但我似乎无法将新打开的工作簿设置为要复制和关闭的ActiveWorkbook。
谢谢
Sub LoopThroughDirectory()
Dim MyFile As Str
我有一个宏(在StackOverflow上找到),它允许用户从桌面上选择工作簿,并将工作表A列中的所有信息复制到主工作簿的A列中。但是,宏不粘贴数据。它只是在它要粘贴的区域周围留下虚线。任何帮助都是非常感谢的。
Sub PopulateUploaderFunds()
Dim uploadfile As Variant
Dim uploader As Workbook
Dim CurrentBook As Workbook
Set CurrentBook = ActiveWorkbook
MsgBox ("Please select uploader file to be revie
Workbooks("The One Sheet.xlsx").Activate
MsgBox ActiveWorkbook.Name 'Returns "The One Sheet.xlsx"
Worksheets("One Sheet").Activate
MsgBox ActiveWorkbook.Name 'Returns "The One Sheet.xlsx"
RwCnt = Application.WorksheetFunction.CountA(Range("A:A"))
Msg
我有下面的代码,当工作簿第一次打开时,我尝试捕获工作簿名称。
Public curWorkbook As Workbook
Function GetName()
Set curWorkbook = ActiveWorkbook
End Function
我需要在一个用于添加数据的用户表单按钮上添加:curWorkbook.activate,以确保数据被添加到正确的工作簿中,以防用户同时打开多个文件。
当我运行这段代码时,我会得到RT 91:"Object变量或带块变量不设置“错误。不知道为什么?
另外,如果有人能建议在"ThisWorkbook“模块中或者在我的"
我有一个连接到数据库的工作簿,当您刷新工作簿时,它会刷新工作簿中的数据。然后运行一个宏,将新的(原始)数据保存在两个不同的位置,然后宏将对该原始数据进行分析,并在以后将相同的工作簿保存在4个其他位置。当我尝试第一次保存原始数据时,我能够保存到第一个位置,但是当它移动到第二个位置时,我得到了错误:运行时错误'1004':对象'_Workbook‘的方法'SaveAs’失败。这两个位置都是有效位置。
下面是宏中执行第一个文件保存的一个子文件:
Sub saveraw()
Dim rdate As String
Dim rawfilename As String,