这里是Vba初学者。我有名为"Dane“的工作簿,其中我有工作表,每个工作表都必须搜索特定的行。这些行不能包含来自我的宏工作簿中A列的值,并且将在特定列中用"1“突出显示。我使用嵌套循环--外部用于工作表,内部用于行。问题是:1只在第一张纸上显示。当我添加‘Dane.Worksheets(I)’时。在'prodRange(x,1)‘错误“对象不支持属性或方法”之前发生。
Dim Dane As Workbook
Set Dane = Workbooks("something.xlsx")
Dim prodRange As Range
Set prodRa
在Excel 2007中,我有一个工作表,其中包含其他Excel文档的列表,所有这些文档都有自己的VBA。我的代码打开列表中的第一个工作簿,让它的vba运行,然后当它完成时,将其标记为完成,并打开列表中的下一个工作簿。
所有这些都运行得很好,除非我让另一个workbok用“thisworkbook.close”关闭它自己。这会停止在原始工作簿中运行的VBA及其自身。如果我注释掉这一行,一切正常,但我宁愿一次只打开主工作簿和一个子工作簿。
此外,在这种情况下,将所有VBA移动到主工作簿也是不切实际的。
前面的代码是一个高度简化的版本,用来显示这个问题:
Workbook1 1的代码:
Sub R
对于vba,我完全是新手,需要一些帮助。基本上,在一个工作表中,我有一个表,在另一个工作表(相同的工作簿)中,我有一个每天都在变化的列表,我需要相应地更新这个表,即相应地添加和/或删除条目。我认为我应该从以下几个方面开始:
1) Do I need to determine the size of the table/list since it's changing
2) Shall I make use of vlookup combined with a nested loops to compare each cell of the list with each cell of
这里是VBA新手。
我记录了从源工作簿复制工作表并将其粘贴到另一个打开的工作簿的工作表中所包含的代码。
它可以工作,但我尝试做的是:触发宏复制工作表打开目标工作簿粘贴数据关闭原始工作簿结束目标工作簿但不同的工作表。
Sub Button5_Click()
'export data to template
Sheets("DataSet").Select 'sheet that I want to copy and paste (resides in macro workbook)
Cells.Select
Selection.Copy
Windows("
当我单击单元格时,我在条件格式中使用以下公式来突出显示活动行。 =OR(CELL("row")=CELL("row",A1)) 在VBA编辑器中,我正在将此宏应用于我的工作表。 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Calculate
End Sub 目前,当我移动到下一个工作表(使用现有数据)时,我必须重复这些步骤,但由于某些原因,它并不总是有效。有没有办法将它应用于当前工作表和可能的新工作表的整个工作簿?首先要感谢大家! condition format
我想使用VBA循环遍历特定的工作表,以便在隐藏的情况下将它们隐藏起来。我想使用工作表的CodeNames,而不是索引或名称。
我尝试过这样的方法,但它在网上返回错误"object required“。
如果HiddenSheets(sCounter).Visible = xlSheetHidden
*新信息:我在单独的工作簿中编写这段代码。我为该工作簿WB_Master创建了一个变量。也许我应该用这个变量从工作簿中调用工作表?
Dim HiddenSheets As Variant
Dim sCounter As Long
HiddenSheets = Array(Sheet4, S
我有一个有效的Excel VBA代码,可以替换每个工作表中的超链接文本。检查下面的代码
' Only change Hyperlinks in the active sheet
Sub FixHyperlinks()
Dim wks As Worksheet
Dim hl As Hyperlink
Dim sOld As String
Dim sNew As String
Set wks = ActiveSheet
sOld = "%5C"
sNew = "/"
For Each hl
我有一本有许多工作表的工作簿(365++)。同时,有许多示例VBA代码允许宏创建从索引页到内容的超链接;然而,创建超链接从内容返回到索引页的例子完全没有。
使用循环遍历解决方案,我可以让代码工作,但它只适用于现有的活动页面,而我需要它循环工作簿中的每个工作表范围"A1“,以将其链接回主页面。
以下代码如下:
Sub vba_loop_sheets()
Dim ws As Worksheet
For Each ws In Worksheets
'Dummy data to test for loop
'ws.Range("
我编写了一个VBA代码段,该代码段调用我的同事编写的另一个工作簿中的宏。该宏实际上调用python来做其他事情并创建一个新的工作簿。在那之后,我需要打开新的工作簿,然后做一些其他的事情。但是,python代码需要一些时间才能运行,如果我简单地使用
Application.Run "'CollegueWorkbook.xlsm'!pythonmacro"
Set wb = Workbooks.Open("NewWorkbook.xlsx")
我将获得Run-time error '9': Subscript out of range
我在Outlook中有一个宏,用于从打开的Excel工作簿("Workbook1")中获取数据。
我参考工作簿如下:
Dim objApp As Excel.Application
Set objApp = GetObject(, "Excel.Application")
Set wb = objApp.Workbooks("Workbook1.xlsx")
我经常得到运行时错误9,即VBA找不到工作簿。
由于我打开了多个Excel实例,所以VBA正在错误的实例中查找我的工作簿。
如何在运行多个实例时引用工作簿
在编写VBA代码时,如果您知道要在同一个工作簿和某个工作表上操作,那么应该为代码中的工作簿对象指定ActiveWorkbook吗?示例:
ActiveWorkbook.Sheets("Sheet1").Range("$A$1")
vs
Range("$A$1")
以上代码假设您正在通过本地宏(在VBA中的Sheet1对象下)处理Sheet1。
我正在尝试使我的数组调整到我工作簿中工作表数的长度,但一直保持
下标超出范围
关于上下文,我的工作表名是“年份XXXX”。
Dim sheetsForCalendar() As Integer
For Each Worksheet In ThisWorkbook.Sheets
Dim i As Integer: i = 0
Dim calendarYear() As String: calendarYear() = Split(CStr(Worksheet.Name))
ReDim Preserve sheetsForCalendar(i)
我为用户提供了一个受保护的工作簿A,它不允许用户从另一个工作簿B复制工作表。在工作簿A中,我将工作表1-19 (到目前为止只有13个工作表,为了将来扩展工作簿,我允许有19个工作表)视为“系统工作表”,不能删除或修改。表20-30是“非系统表”,用户可以根据需要进行删除和修改。
我希望有一个导入功能,其中用户可以导入工作簿B,其中包含一个工作簿A工作簿A工作簿A将检查,看看有多少“非系统工作表”,目前存在,并插入一个新的工作表在末尾的页码是20+。例如:
Total sheets in workbook A = 18
Total "system sheets" in A =
我仍然是vba的新手,我对如何将工作表复制到新的工作簿以及如何根据单元格值重命名新的工作簿有疑问。我有一个名为“摘要”的工作表,我想复制该工作表并导出到新的工作簿,但我也希望新工作簿根据单元格值命名(在本例中,我希望它根据单元格B3命名)。下面是我尝试过的代码:
Sub Sample2()
Dim wksht As Summary
Set wksht = ActiveSheet
Dim path As String
path = "C:\Desktop"
wksht.Copy
ActiveWorkbook.S
我打开了一个加载项和一个工作簿。加载项是一个.xlam文件,我在工作簿中添加了对它的引用。加载项受密码保护。
可以从我的工作簿中运行外接程序的公共方法。但是,加载项中的一种方法是使用VBA.UserForms.Add打开在运行时创建的用户表单。
假设包含对myAddin的引用的工作簿如下所示:
Private Sub callAddin()
myAddin.ShowForm ThisWorkbook
End Sub
通常,我的加载项中的代码如下所示:
Public Sub ShowForm(CallerWorkbook As Workbook)
Const vbext_ct_M