我试图在一些具有一些宏的Excel工作表上自动化数据填充.现在excel受到保护,我无法获得密钥.现在我能够运行宏,但是当我尝试传递参数时,我得到的参数不匹配.
如果我只是运行带有名称的宏,我得到inputbox一个额外的参数作为输入,并自动生成列的一些值.我必须手动输入此值到inputbox现在.有没有什么方法可以自动化该过程,即捕获vb.net脚本中的宏抛出的输入框并从那里输入值?即,我想运行宏,并在我得到弹出窗口要求我输入一些值后,使用vb.net代码输入该弹出窗口的值.
这就是我现在所拥有的
Public Class Form1
Dim excelApp As New Excel.Application
Dim excelWorkbook As Excel.Workbook
Dim excelWorkSheet As Excel.Worksheet
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
excelWorkbook = excelApp.Workbooks.Open("D:/excelSheets/plan_management_data_templates_network.xls")
excelApp.Visible = True
excelWorkSheet = excelWorkbook.Sheets("Networks")
With excelWorkSheet
.Range("B7").Value = "AR"
End With
excelApp.Run("createNetworks")
// now here I would like to enter the value into the createNetworks Popup box
excelApp.Quit()
releaseObject(excelApp)
releaseObject(excelWorkbook)
End Sub
Run Code Online (Sandbox Code Playgroud)
宏定义
createNetworks()
//does so basic comparisons on existing …Run Code Online (Sandbox Code Playgroud) 我使用Microsoft Office Interop编辑一些excel文件,当我关闭它们时,我使用
outputExcelWorkBook.Close(false, paramMissing, paramMissing);
Run Code Online (Sandbox Code Playgroud)
但是仍然出现一个对话框,即使我false作为第一个参数传递.我也尝试过true并给它一个文件路径作为第二个参数,但在这两种情况下都会出现一个对话框,询问我是否要在关闭之前保存.谁能告诉我这里发生了什么?
我成功创建了一个服务名字对象作为我的WCF服务的客户端.但是我无法在绰号上调用任何方法.
在WCF服务端,我有一个名为TestMethod的虚拟方法,如下所示:
Public Function TestMethod(ByVal TestValue As String) As String Implements ICustomerService.TestMethod
Return "You said.... " & TestValue
End Function
Run Code Online (Sandbox Code Playgroud)
以下代码在Excel中创建Moniker.
Public Sub WCFMexMonkierDemo()
' Create a string for the service moniker including the content of the WSDL contract file
Dim mexMonikerString As String
mexMonikerString = "service:mexAddress='http://localhost/CustomerService.svc/mex'" & _
", address='http://localhost/CustomerService.svc'" & _
", binding=CustomerServices.CustomerService" & _
", bindingNamespace='http://tempuri.org/'" & _
", contract=ICustomerService" & _
", contractNamespace='http://tempuri.org/'"
' Create the service moniker object
Dim mexMoniker, result
Set mexMoniker = GetObject(mexMonikerString) …Run Code Online (Sandbox Code Playgroud) 新手:我有一个 Excel 文件,其中包含 100 多个不同的工作表。每个工作表包含几个表格和图表。
我希望将每张工作表保存为一个新的 Excel 文件。
我尝试了很多 python 代码,但都没有奏效。
请在这方面提供帮助。谢谢!
编辑 1 :为了回应评论,这就是我尝试过的:
import pandas as pd
import xlrd
inputFile = 'D:\Excel\Complete_data.xlsx'
#getting sheet names
xls = xlrd.open_workbook(inputFile, on_demand=True)
sheet_names = xls.sheet_names()
path = "D:/Excel/All Files/"
#create a new excel file for every sheet
for name in sheet_names:
parsing = pd.ExcelFile(inputFile).parse(sheetname = name)
#writing data to the new excel file
parsing.to_excel(path+str(name)+".xlsx", index=False)
Run Code Online (Sandbox Code Playgroud)
准确地说,问题在于复制表格和图表。
我有一些使用Excel COM对象的Excel自动化代码.从其他SO帖子我知道应该尽快释放对象:
Excel.Range rng = GetSomeRange();
// do something with rng...
Marshal.ReleaseComObject(rng);
Run Code Online (Sandbox Code Playgroud)
但是,如果我在一个范围内循环遍历单元格,则以下是正确的过程吗?
Excel.Range rng = GetSomeRange();
foreach (Excel.Range r in rng)
{
// do something with r
Marshal.ReleaseComObject(r); // release at earliest possible convenience
}
Marshal.ReleaseComObject(rng);
Run Code Online (Sandbox Code Playgroud)
什么我不能确定这里是,如果我每次释放r的rng,然后我也释放rng我在有效释放rng两次或者释放正确其他参考资料r来rng和rng自己?
谢谢你!
编辑
我选择了后一种策略:
Excel.Range rng = GetSomeRange();
foreach (Excel.Range r in rng)
{
// do something with r
Marshal.ReleaseComObject(r); // release at earliest possible convenience
} …Run Code Online (Sandbox Code Playgroud) 实际工作中,通过环列A具有与一定范围内相同的值,该范围要检查的最后日期与注释列B和打印带有日期在注释列C好心帮我找到这个解决方案问题.. 或找到此问题解决方案的指南...请查看屏幕截图以获取清晰信息.. 提前感谢专家
excel ×3
vba ×3
c# ×2
excel-vba ×2
com-interop ×1
excel-addins ×1
python ×1
vb.net ×1
wcf ×1
xlrd ×1