我正在使用Excel VBA应用程序.
我的公司想把它变成一种产品.此应用程序只能在一个系统上安装.有人可以帮我这个.
任何人都知道如何查看VSTO项目的Excel窗口是否处于活动状态/焦点?
我正在寻找相当于System.Windows.Window.IsActive.
With如果我想要对象本身,而不是它的属性/方法,我如何引用我在里面使用的对象?
With ThisWorkbook.Sheets("MySheet")
Call MySub(ThisWorkbook.Sheets("MySheet")) ' works OK, but duplicated
Call MySub(this) ' does not works
.Range(...).Value2 = 1
...
End With
Run Code Online (Sandbox Code Playgroud)
+这里的术语是什么?我甚至不知道如何撰写谷歌查询,并得到一些有用的结果(因为with是一个常见的词)...
with ... as handlepython语法这样的句柄,而不是面向对象的this关键字 Set mainWB = Workbooks("Copy Paste.xlsb")
Set mainWS = mainWB.Sheets("Sheet1")
Set testWS = mainWB.Sheets("Sheet3")
mainWS.Select
Run Code Online (Sandbox Code Playgroud)
我一直在Excel VBA的最后一行收到错误:
"方法选择对象'_Worksheet'失败"
知道为什么或如何解决这个问题?谢谢!
我试图在Visual Basic for Applications中编写一个hello world应用程序,即修改Excel工作表中的单元格.这里是:
Sub hello()
Dim obj As Object
Dim Workbook As Object
Set obj = CreateObject("Excel.Application")
Set Workbook = obj.Workbooks.Open("C:\Users\gbuday\Desktop\Oktatás\Excel\start.xlsx")
Workbook.Worksheets("Munka1").Range("B3") = "Hello World!"
Workbook.Close
Set Workbook = Nothing
Set obj = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
运行时,Excel挂起,我无法停止脚本运行,只能杀死excel进程.调试它,它挂起了Workbook.Close线.那条线有什么问题?
我是脚本新手,我正在尝试改进现有的宏.我录制了一个宏来删除重复并将其添加到Main函数中,该函数调用其他一些函数,但是当我添加我记录的宏时,我收到此错误:
Run-time error '1004': Unable to set the hidden property of the range class
Run Code Online (Sandbox Code Playgroud)
代码看起来像
Private Sub Worksheet_Change(ByVal Target As Range)
Dim changed As Range
Set changed = Intersect(Target, Range("J15"))
If Not changed Is Nothing Then
Range("A48:A136").EntireRow.Hidden = True
Select Case Target.Value
Case "Agriculture"
Range("A48:A96").EntireRow.Hidden = False
Case "Commercial"
Range("A97:A136").EntireRow.Hidden = False
Case "MDP"
Range("A48:A61").EntireRow.Hidden = False
End Select
Range("J15").Select
End If
End Sub
Run Code Online (Sandbox Code Playgroud) 我正在创建一个报告模板,其中一部分将生成具有类似于移动平均值的结构的数据图表
为此我需要在一个工作表中选择一系列数据(例如f10:i14)并放置并将其设置为一个图表的来源
以下代码可行
ActiveChart.SetSourceData Source:=Sheets("Weekly Trends").Range("f10,i14")
但事实并非如此
ActiveChart.SetSourceData Source:=Sheets("Weekly Trends").Range(Cells(x, y), Cells(k, z))
它返回一个 1004 error
但是我需要根据报告的目的为变量索引指定范围,请帮忙
下面是一个(工作)代码片段,它打开一个Microsoft Word文档,并转到目录中的特定索引.filePath只是一个文件路径,strTopic是一个链接到Word Doc中的ToC的值.
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set docWord = objWord.Documents.Open(fileName:=strPath, ReadOnly:=True)
docWord.Bookmarks(strTopic).Range.Select
Run Code Online (Sandbox Code Playgroud)
但是,我需要将Word文档放到前台.
首先是VBA可以实现吗?有没有一种toFront()类型的"功能"可以使用吗?AFAIK C#有类似app.ActiveWindow.Activate();但我无法在vba中获得类似的东西.
我必须计算列中不同值的数量,并使用不同的值打印它并在另一个表中计数.我正在处理这段代码,但由于某种原因,它没有返回任何结果.谁能告诉我我错过了哪一块!
Dim rngData As Range
Dim rngCell As Range
Dim colWords As Collection
Dim vntWord As Variant
Dim Sh As Worksheet
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Dim Sh3 As Worksheet
On Error Resume Next
Set Sh1 = Worksheets("A")
Set Sh2 = Worksheets("B")
Set Sh3 = Worksheets("C")
Sh1.Range("A2:B650000").Delete
Set Sh = Worksheets("A")
Set r = Sh.AutoFilter.Range
r.AutoFilter Field:=24
r.AutoFilter Field:=24, Criteria1:="My Criteria"
Sh1.Range("A2:B650000").Delete
Set colWords = New Collection
Dim lRow1 As Long
lRow1 = <some number>
Set rngData …Run Code Online (Sandbox Code Playgroud) 我正在编写Excel宏,我在清除Scripting.Dictionary对象时遇到问题:
Dim test As Integer
test = CompListDict.Count
CompListDict.RemoveAll
Set CompListDict = Nothing
Set CompListDict = CreateObject("Scripting.Dictionary")
Dim test1 As Integer
test1 = CompListDict.Count
Run Code Online (Sandbox Code Playgroud)
在我这样做之前,我将项目添加到字典中,然后我尝试清除它,但test1将等于测试并等于我添加的nr个对象.
我究竟做错了什么 ?谢谢!