我正在尝试拆分我的工作簿,但是当我这样做时,新工作簿中的命名区域引用了原始工作簿。我不想这样,因为我已经将这些引用的源代码复制到了新的工作簿中。因此,我想删除命名范围中对旧工作簿的引用。我试图通过将引用替换为nothing来改变这一点,但是它不起作用。我做错了什么,或者有其他方法吗?我还尝试删除命名范围并将其替换为新的命名范围,但引用命名范围的一部分是一个带有=offset(...)的函数。这似乎在VBA中也不起作用。 Sub RenameNamedRanges()
Dim all_names, n
all_names = Array("1stNamedRange
现在我有了一些代码,提示用户选择一个范围(1区域,1列,几行)。这是它提示用户这样做的代码:
MsgBox "Select a continuous range of cells where numeric values should be appended."
Set Rng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8) 'Type Values, 8 - Range object
但是,如何从上面的选择中获得工作簿名称和工作表名称?
这个问题是关于对象引用的。
下面是我的帮助班。
class helperv2
{
Workbook mainworkbook;
//fill column names method
public void FillColumnnames(DatabaseAdapter db,Workbook workbook)
{
//do some random stuff
//at the end of method
mainworkbook = workbook;
}
public Workbook fi
假设我们有两个在VBA功能方面相同的工作簿;但是,数据集将是不同的。VBA代码将一些数据存储在集合变量上,以便于计算。此变量通过同一工作簿中的不同模块调用。由于此变量也存在于另一个工作簿中,并且这两个工作簿不应共享相同的集合值,因此我们如何确保对集合的调用将仅从其自己的工作簿中提取变量?
在声明集合变量时,声明"Option Private Module“是否足够?例如:
Option Private Module
Public DataCol As New Collection
谢谢。
我正在编写一个vba代码来将两个excel工作簿拉到一个工作簿中。工作簿1来自前一个工作日,工作簿2是前一个工作日的第二大工作日。例如,在周一,我将把周五和周四的工作簿数据放到一个单独的工作簿中。工作簿被命名为“结果07.26.2019”,因此日期格式是mm.dd.yyyy。当我尝试用mm.dd.yyyy格式化我的约会时。它要么忽略我的格式,要么产生错误。我试着定义我的约会对象如下:
Dim dDate As Date
dDate = Date
dDate = Format(dDate, "mm.dd.yyyy")
默认格式为"mm/dd/yyyy",是否有允
我得到了一个主工作簿,它用特定的工作表和头创建了一个新的工作簿,它不会保存工作簿,因此它将是一个随机名称,比如Book1或Book2。这部分是成功的。接下来要做的是打开一个文件,并将打开的文件的数据复制到创建的未保存的工作簿("Book1“或任何名称)。
问题是我无法在源代码数据工作簿(打开的文件)和未保存的工作簿之间切换窗口。我尝试过windows(“工作簿名”).activate,但它只适用于特定的名称。我需要激活未保存的工作簿。总之,我已经打开了3本工作簿。
Sub CopyData()
Dim Newbook As Window
Dim wb As Wo
用户Peh给了我很棒的代码来将数据从关闭的工作簿复制到打开的工作簿,但现在我想做相反的事情。我希望有一个打开的工作簿,其中包含要复制的公式和值,并将这些值作为值粘贴到关闭的工作簿中。我想从打开的工作簿的"AllData“选项卡中复制range B36:K36,以便将以K1开头的值粘贴到已关闭工作簿的Sheet1中,该工作簿名为"archive.xlsx”。
这是我当前的代码(来自互联网):
Sub CopynPasteWrkBk()
Dim InputFile As Workbook
Dim OutputFile As Workbook
Dim Inpu
在MS 2007宏中,我希望在开始更新之前将工作簿(其中包含宏)保存到另一个工作簿中。但是,当我执行SaveAs时,当前的工作簿变成了保存的工作簿,而不是我一直盯着的原始工作簿。
假设我以工作簿"A.xlsm“开头,然后在工作簿"A.xlsm”中发出命令
With ActiveWorkbook
.SaveAs FileName:=ThisWorkbook.Path + "\" & "B.xlsm"
Close 0
End With
活动工作簿中的任何更改都出现在工作簿"B.xlsm“中,而不
老实说,前几天我问了一个类似的问题,但我想我把问题弄得太复杂了,所以我不太清楚我在寻找什么。
为了总结我之前的问题,在使用xlsxwriter时,我正在寻找一种将公式的结果存储/赋值为数值的方法,以便以后可以在脚本中引用它,从而避免重新计算。我应该指出,在这个过程中,我正在生成两个单独的Excel文件,所以要避免可怕的#REF!第二个Excel工作簿上的错误
很抱歉使用粗制滥造的代码,但是下面这样的内容是我想要的,但是“结果”会被分配给一个类似于'12.56‘的数字,所以当我写到第二个Excel工作簿时,我就避免了重新计算,只需输入指定的“结果”值。
# on first EXCEL
当在代码中引用不同的工作簿时,我一直在使用"Set Workbooks.Open“。
示例:
`Dim wbname1 as Workbook
Dim wbname2 as Workbook
'code which refers to wbname1
Set wbname1 = Workbooks.Open("path\filename")
'code which refers to wbname2
Set wbname2 = Workbooks.Open("path\filename")`
这有时不方便,因为为了再次引用以前的工作
下面是在同一个工作簿中工作的内容--如何在不同的工作簿中使用摘要表?
Sub SummurizeSheets()
Dim ws As Worksheet
Application.ScreenUpdating = False
Sheets("Summary").Activate
For Each ws In Worksheets
If ws.Name <> "Summary" Then
ws.Range("D2:D6, D8:D15").Copy
Worksheets("Summary
尝试在UNAPP宏后激活活动工作簿,但(如果打开了许多工作簿)总是激活最后打开的工作簿,并且每次都在切换(上一个工作簿到Activeworkbook),我需要始终激活从中调用代码的工作簿。 Sub App()
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.EnableEvents = False
.Calculation = xlManual
.Visible = False
End With
End Sub
Sub unApp()
我使用以下代码以编程方式创建新的工作簿:
'Adding a new workbook
Workbooks.Add
'Saving the new workbook
ActiveWorkbook.SaveAs newFilePath
'Closing the new workbook
ActiveWorkbook.Close
我想知道如何设置列名,换句话说,如何在工作簿中写入,然后再关闭它。
我正在创建一个宏,它将处理和格式化扫描(SCANfile#.xlm),并将其保存为.xlm文件--最终结果应该是一个经过处理的格式化工作簿,该工作簿将被保存为一个.xlm文件。我在工作簿中创建宏,为了讨论的目的,我将调用SCANMacro,目的是将它与当时可能打开的任何SCANfile#工作簿同时打开。
Sub Copy and Paste Data ()
'select cell on target workbook/worksheet
Range("X1").Select
'
'select the data from the saved wo
当任何人打开工作簿时,我有一个密码验证步骤。我有多个用户将访问此工作簿,并在此基础上分配了一个名为user的变量,以确定其中谁正在使用它。
Public pwd, user As String
Public graccess As Integer
Private Sub workbook_open()
graccess = 0
Do
pwd = InputBox("Please provide your password", "Authentication")
If pwd = "access" Then
user = "GTS
我在VBA中遇到了一个问题,当我将数据从其他工作簿合并到主工作簿中时,使用的文件名和路径名是可变的,它在循环中动态变化。我搜索了一下,但我只找到了硬编码的路径,所以我在这里发布以下是我的代码。
Sub Append()
'Append data from other files
Path = "E:\NPM PahseIII\"
Dim c As Range
'find the first empty cell in ColA
Set c = ActiveSheet.Cells(Rows.Count, 1).End(x
我每天都要下载一本工作簿。
工作簿的名称总是以CMVOLT开头。
整个文件名为CMVOLT_22112019。
22112019表示日期和每天的更改。
我按以下方式打开此工作簿:
Sub openwb()
Dim sPath As String, sFile As String
Dim wb As Workbook
sPath = "C:\Users\Windows\Downloads\"
sFile = sPath & "CMVOLT_22112019.CSV"
Set wb = Workbooks.Open(sFile)
End Sub
因此
我维护的excel工作簿中包含以下VBA代码:
Function GetDrivePath(DriveLetter As String) As String
Dim DrivePath As String
Dim DriveLen As Long
'DrivePath = Space(260)
DriveLen = Len(DrivePath)
If WNetGetConnection(DriveLetter, DrivePath, DriveLen) = error_success Then
GetDrivePath = DrivePath
Else
GetDri
我有一个包含多个.xlsx工作簿的文件夹,所有这些工作簿都在一个页面上包含相同的3个表,这些表具有完全相同的布局,但每个表中的值不同。因为每个工作簿在同一页上包含3个表,所以我有一个VBA脚本,它遍历文件夹中的文件,专门从3个表中的每个表中提取必要的数据/单元格,并将其写入活动工作簿或“主”工作簿。我遇到的问题是,尽管它正确地以我需要的格式写入数据,例如,表1数据在行1,表2数据在行2,表3数据在行3,等等。对于每个工作簿-它读取的每个新工作簿都会覆盖以前的工作簿数据。因此,最后只剩下脚本读取的最后一个表中的数据。到目前为止,我的代码如下: Sub getDataFromWbs()
Dim
我正在尝试将单元格定义为变量,以便在调用工作簿时可以使用它。这个单元格每天都在变化,在运行这个宏之前,我创建了一个全新的工作簿,它的标题是这个单元格。
这就是我所拥有的,但显然它不会工作:
Dim wbk As Workbook
Set wbk = "X:\myname\TESTOCD\&"Sheets("MockupHelp").Range("d29")"""
在我的工作表MockUpHelp中,我引用的每天更改的单元格是D29。
我有vba,工作很棒,打开一个文件的基础上,部分标准满足。但是当我打开多个文件时,下面的VBA打开的文件在完成后仍然是打开的,我在如何回调该工作簿以关闭它时遇到了问题,因为它打开了部分满足的参数。简而言之,打开一个文件(打开一个文件),然后在另一个vba中复制数据,并将其粘贴到另一个工作簿中(在另一个VBA中完成)完成后,我希望将该工作簿重新启动并将其关闭。如果我执行activeworkbook.close,它将关闭我正在处理的不想要的工作簿。帮助我卡住了!
Sub OpenCopy()
Dim sPath As String
Dim sPartial As String
Dim sFName
我有一个文件夹,其中每个员工都有一个excel工作簿(工作簿中只有一个工作表)。我想打开每个员工工作簿,读取$A$1中的单元格,然后写入另一个工作表。最终,我将有一个工作表,其中将包含所有的$A$1单元格,每个工作簿。我写了以下代码,但由于某些原因,我所指示的代码行不起作用。你能建议一下怎么做吗?谢谢
Private Sub CommandButton1_Click()
Const FOLDER As String = "c:\Junk\Employee Files\"
On Error GoTo ErrorHandler
Dim i As Integer
i = 0
D