所以我想要做的是在visual basic VBA for Excel中这样做:
Dim var As String
Dim wsNew as Worksheet
Sheets.Add After:=ActiveSheet
var = Range("A34").Value
Worksheets(wsNew).Cells(1, 2) = var
但在本例中,行:Worksheets(wsNew).Cells(1, 2) = var
给出误差
运行时错误13,类型不匹配
我不想给新工作表命名字符串,因为那样的话,我总是必须重命名这些工作表。因此,是否可以使用变量名而
我试图在运行时更改工作表,因此我用VBA编写了以下代码:
Dim Item As Variant
Dim Info As Variant
Dim Stat As Integer
Stat = 2
Dim Line As Integer
Line = 1
Item = "Cases"
Sheets(Item).Activate
Do
Line = Line + 1
Loop While Cells(Line, "B") <> Null
Do
Info = Cells(1, Stat)
Info
我正在使用SHEETOFFSET VBA代码
Function SHEETOFFSET(offset, Ref)
' Returns cell contents at Ref, in sheet offset
Application.Volatile
With Application.Caller.Parent
SHEETOFFSET = .Parent.Sheets(.Index + offset) _
.Range(Ref.Address).Value
End With
End Function
然后在我的新工作表中添加以下代码
=sheetoffset(-1, B2)
将上一个工
我的Excel文件/VBA代码有问题。我正在更新许多Excel文件(复制/粘贴到表格中),并更新这些文件中的透视表。我已经使用这个代码/方法很多年了,它一直运行得很好。
但最近我的文件在运行VBA后表现得很奇怪。当更新35个excel文件时,大约有15个文件在更新后被“损坏”。我可以打开它们,但我不能储存。然后文件就会被关闭。
因此,我将行"Application.DisplayAlerts = False“更改为"True",然后再次运行。这次VBA停止显示:运行时错误'-2147319767 (80028029):自动化错误。它指向这条线:
For Each
我对VBA相当陌生,所以如果我不太习惯VBA语法,请原谅。
我的问题是:我有大量包含类似数据的表格,我想制定一个程序来研究每个表格单元格中的数据(单元格总是位于每个工作表的同一范围内),并将其复制到我的工作表“详细信息”中。
我试图转换字符串中每个工作表的名称,以便迭代它(s1,然后是s2,然后.),但是当我使用 sheet ("s“& 1)时,VBA将"s”& i识别为字符串,而不是工作表。
如何将"s“& i转换为纸张?
Sub metro()
Dim s1 As String
Dim s2 As String
Dim s3 As Stri
我试图在VBA中做一个拷贝,作为一个更大的宏的一部分,所以它需要在VBA中,一个特定工作表中未知的范围。
如果我在工作表中,我有这样的代码:
Sub Copy()
Range("O2", Range("O" & Cells(Rows.Count, "A").End(xlUp).Row)).copy
End Sub()
下面有一个特定范围的工作:
Sub Test()
Worksheets("Data").Range("O2:O10").Copy
End Sub()
如何使第二段代码不特定地工作。
谢
好了,就这样吧。我有一本工作簿,每天都有一个单独的工作表,详细说明股票交易活动。我目前还拥有一个VBA,它为每个工作表上指定的列提供了一个总和,这很好。
然而,我想要做的是添加到我的VBA,以便它为这些列提供一个总和到主工作表。
因此,例如:如果2018年10月1日工作表1的交易活动总计400万,而2018年10月2日的工作表2交易活动总额为300万,我希望主工作表上显示总数为700万的数据。
我已经在下面附加了我当前的vba,当前每个单个工作表上的汇总列是J。每个工作表上的列之和不会改变,但是这些列中包含的数据量显然取决于交易活动。
Sub autoSum_AllSheets()
D
我试图将一个特定的工作表声明为一个变量。
我收到一个运行时错误9
Sub Test()
Dim ws As Worksheet
Set ws = Workbooks("C:\Users\mturkenburg\OneDrive - WHISPIR\Whispir\Desktop\IT Learnings\VBA\The Complete VBA Excel VBA Course for Beginners.xlsm").Worksheets("Testsheet")
End Sub
我正在学习VBA,在有两个工作表的工作簿中开发宏时遇到了困难。第一个工作表命名为"Para“,第二个工作表命名为"Report”。
当我在Para!C6中输入一个数字或文本(例如76894)时,我希望VBA代码删除Report!Y:Y列中的所有行,但与Para!C6中的值匹配的行除外。
我尝试了以下代码,但它不起作用:
Sub KeepOnlyAtSymbolRows()
Dim ws As Worksheet
Dim rng As Range
Dim lastRow As Long
Dim s As Integer
s = Works
我很难处理Excel上的VBA错误,有人能帮我理解这个错误意味着什么吗?
"VBA对象变量或带块变量的未设置错误“
我的函数应该检查工作表是否存在,如果没有创建新工作表,请重命名它并返回到主函数。代码可以工作,但是错误总是被抛出。
Function GetWorksheetFromName(Name As String) As Worksheet
Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
If StrComp(WS.Name, Name, vbTextCompare) = 0 T
下面是我想要完成的任务:我正在尝试将所有的VBA代码从"Sheet2“复制到"Sheet 3”代码窗格。我指的不是从一个模块复制到另一个模块,而是excel工作表对象代码。
我已经为应用程序扩展5.3添加了一个对MS的引用
我不知道从哪里开始,但这是我已经开始的,它不会去任何地方,很可能都错了。请帮助--只想以编程方式将工作表vba代码复制到另一个工作表vba窗格中。
Dim CodeCopy As VBIDE.CodePane
Set CodeCopy = ActiveWorkbook.VBProject.VBComponents("Sheet2").VBE
出于各种原因,我更喜欢使用代码来引用VBA代码中的工作表。
但是,当我动态地添加这样的工作表时(在只有一个工作表的工作簿中):
Sub example()
Worksheets.Add After:=Worksheets(Worksheets.Count)
'SOME OTHER CODE HERE
Sheet2.Activate
End Sub
..。它不会编译,因为Sheet2没有被定义为变量。
有办法绕道吗?目前,我正在恢复使用工作表名称:
Sheets("Sheet2").Activate
有没有办法用代号来做这件事?
提前谢谢。
在vba中trim和trim$有什么不同?今天,当我在vba中使用left和trim函数时,编译器意外地说cant find project or library
当我在谷歌上搜索它时,在其中一个论坛上,我发现用户使用了以下内容
vba.trim("string")
他回答了函数的前缀为vba。令人惊讶的是,它在我的pc too.But上工作,我找到了这些函数
trim and trim$
left and left$
leftb and leftb$
我想知道什么是trim和trim$。我想找出不同之处,所以我开始搜索它,但结果是trim忽略了$字母表。
我只是好
我有多张表,应该引用另一张表。例如单元格B3,工作表AC:=Inlife!G4。现在我创建了两个新的工作表AC (2)和Inlife (2),对于B3,sheet (2)的引用应该是:=Inlife (2)!G4
我尝试了许多替换选项,但到目前为止,我所做的只是删除公式并留下一个值或空白单元格。
Dim rng As Range, cell As Range
Set rng = Sheets("AC (2)").Range("B3:B10")
For Each cell In rng
cell = WorksheetFunct
我编写了一个VBA脚本/宏,当在特定的单元格范围(n )中检测到更改时,该脚本/宏将运行。然后,它根据在第一个范围中检测到的内容改变另一个范围(Nx1)中的值。
这一点很完美..。但随之而来的是古老的删除撤销堆栈问题。不幸的是,用户需要有能力撤销他们最后的10次左右的操作。
我的理解是,只有当VBA直接编辑工作表上的某些内容时,撤消堆栈才会被清除--但是如果VBA只是在后台运行而没有编辑工作表,它就会被保留。
,所以我的问题是:是否可以使用in单元公式(如下所示)从VBA数组中提取值?
'sample of in-cell function in cell A3
=function_t
我有一个电子表格,它使用一个外部加载项来更新单元格中的值.注意,单元格没有更改,只更新了值。
每次更新单元格时,我都要运行宏。
为了模拟这个问题:
创建一个空的excel工作表
In cell A1添加公式'=rand()'
VBA中的为sheet1添加了一个宏,这里是一个简化的版本:
私有子Worksheet_Change(ByVal Target As Range)如果Target.Address = "$A$1“,那么单元格(1,3).Value =”函数更新“如果
End Sub
但是,当我随后按F9 (以更新随机数)时,工作表不会将其识别为工作表更改,因此不会
在VBA for Excel中,我需要保存工作表中隐藏的所有列的范围,不幸的是,我无法找到如何做到这一点。为了提供更多的上下文,我的目的是将工作表的隐藏列范围保存在一个临时变量中,然后取消隐藏列、保存工作簿和重新隐藏已保存的列,这样工作簿就会被保存到所有可见的列中。我被困在“在临时变量中保存工作表中隐藏列的范围”步骤中。谢谢你的帮助。