excel - 从excel中提取值而不激活工作簿
问题描述
我正在使用以下代码MS Word
并需要从以下代码中提取数据Excel Workbook
:
它将Find
在 Workbook 中 TICKER,如果找到它,它将使用 Workbook 中的值设置 SECTOR 变量。
Set MyXL = GetObject(, "Excel.Application")
If MyXL.ActiveWorkbook.NAME = "LIST.xlsm" Then
Set eXwb = GetObject("C:\Users\dell\Desktop\WEBD\LIST.xlsm")
Else
Set eXwb = MyXL.Workbooks("LIST.xlsm")
eXwb.Activate
End If
eXwb.Worksheets("Sheet4").Cells.Find(What:=TICKER).Offset(0, 2).Activate ' Is there any oneline code to find and set SECTOR variable without activating workbook
Set SECTOR = eXwb.Application.ActiveCell
有没有可能我可以在不激活 eXwb 工作簿的情况下提取数据。是否有任何一行代码可以在不激活工作簿的情况下查找和设置 SECTOR 变量。
解决方案
只需删除该行eXwb.Activate
。也.Activate
从eXwb.Worksheets("Sheet4").Cells.Find(What:=TICKER).Offset(0, 2).Activate
直接使用范围中删除
你的代码可以写成
Set MyXL = GetObject(, "Excel.Application")
If MyXL.ActiveWorkbook.Name = "LIST.xlsm" Then
Set eXwb = GetObject("C:\Users\dell\Desktop\WEBD\LIST.xlsm")
Else
Set eXwb = MyXL.Workbooks("LIST.xlsm")
End If
Dim SECTOR As Object '~~> Code is run from MS Word
Set SECTOR = eXwb.Worksheets("Sheet4").Cells.Find(What:=TICKER)
'~~> Check if .Find returned something
If Not SECTOR Is Nothing Then
Set SECTOR = SECTOR.Offset(, 2)
MsgBox SECTOR.Value
Else
MsgBox "Ticker " & TICKER & " was not found"
End If
推荐阅读
- asp.net-core - 使用 Blazor wasm Bearer Token 进行 SignalR 身份验证
- kotlin - Spring Cloud Gateway:后过滤 Web 客户端请求
- c# - 在c#中将对象模型转换为json?
- php - Laravel - 在选项卡式窗格中动态加载内容
- python-3.x - Beam Pubsub 代码被击中并且没有发布消息
- java - Java 通用表示法,
放 - c# - 选择数据模板中的控件时获取行详细信息
- jenkins - Jenkins 在部署前手动批准电子邮件
- laravel - 中间模型为空时使用间接关系
- google-chrome - iPad Chrome CORS cookie 共享