我试图将一些VBA代码转换为C#.我是C#的新手.目前我正在尝试从文件夹中打开Excel文件,如果它不存在则创建它.我正在尝试以下内容.我怎样才能使它工作?
Excel.Application objexcel;
Excel.Workbook wbexcel;
bool wbexists;
Excel.Worksheet objsht;
Excel.Range objrange;
objexcel = new Excel.Application();
if (Directory("C:\\csharp\\error report1.xls") = "")
{
wbexcel.NewSheet();
}
else
{
wbexcel.Open("C:\\csharp\\error report1.xls");
objsht = ("sheet1");
}
objsht.Activate();
Run Code Online (Sandbox Code Playgroud) 我试图打开一个Excel文件并用数据填充其单元格?到目前为止,我已完成以下编码.
目前我在这个阶段使用以下代码但仍然出现错误:
Microsoft.Office.Interop.Excel.ApplicationClass appExcel =
new Microsoft.Office.Interop.Excel.ApplicationClass();
try
{
// is there already such a file ?
if (System.IO.File.Exists("C:\\csharp\\errorreport1.xls"))
{
// then go and load this into excel
Microsoft.Office.Interop.Excel.Workbooks.Open(
"C:\\csharp\\errorreport1.xls", true, false,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value, Missing.Value);
}
else
{
// if not go and create a workbook:
newWorkbook = appExcel.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel._Worksheet excelWorksheet =
(Microsoft.Office.Interop.Excel._Worksheet)
newWorkBook.Worksheets.get_Item(1);
}
i++;
j = 1;
j++;
objsheet.Cells(i, j).Value = "Tabelle: " + rs.Fields["Table_Name"];
j++;
objsheet.Cells(i, j).Value = …Run Code Online (Sandbox Code Playgroud) 我正在使用我的程序的第一部分
在错误上开始
假设在我的第二部分我再次使用
在错误恢复下
第二个错误陷阱将不会被激活,因为第一个错误陷阱仍将处于活动状态.有没有办法在使用后取消激活第一个错误处理程序?
Set objexcel = CreateObject("excel.Application")
objexcel.Visible = True
On Error GoTo Openwb
wbExists = False
Set wbexcel = objexcel.Workbooks.Open("C:\REPORT3.xls")
Set objSht = wbexcel.Worksheets("Sheet1")
objSht.Activate
wbExists = True
Openwb:
On Error GoTo 0
If Not wbExists Then
objexcel.Workbooks.Add
Set wbexcel = objexcel.ActiveWorkbook
Set objSht = wbexcel.Worksheets("Sheet1")
End If
On Error GoTo 0
Set db = DBEngine.opendatabase("C:\book.mdb")
Set rs = db.OpenRecordset("records")
Set rs2 = CreateObject("ADODB.Recordset")
rs2.ActiveConnection = CurrentProject.Connection
For Each tdf In CurrentDb.TableDefs
If Left(tdf.Name, 4) <> "MSys" …Run Code Online (Sandbox Code Playgroud) 我使用表单在Access中的数据库上运行一些代码.在更新或删除期间,Access会询问您是要更新还是删除.
我想知道是否有任何方法可以关闭这些系统消息,或者让用户选择他喜欢他是否想要弹出消息.
我在VBA中有一些代码块模块可以在少数Access数据库上运行.如果我想将编码转换为C#环境,我想知道如何继续.是否有可能实现和获得与我现在使用Access和VBA相同的结果?在这一点上,我对C#完全陌生.
我正在运行几个VBA代码模块.在运行过程中,代码崩溃,因为Access的最大大小为2GB; 但是,如果我在那时压缩数据库它只有200MB.
在代码运行时是否可以定期压缩数据库?
我试图使用以下代码将数据写入excel文件
Dim objexcel As Excel.Application
Dim wbexcel As Excel.Workbook
Dim wbExists As Boolean
Set objexcel = CreateObject("excel.Application")
objexcel.Visible = True
On Error GoTo Openwb
wbExists = False
Set wbexcel = objexcel.Documents.Open("C:\Documents and Settings\TAYYAPP\Desktop\test folder\ERROR REPORT2.xls")
wbExists = True
Openwb:
On Error GoTo 0
If Not wbExists Then
Set wbexcel = objexcel.Workbook.Add
End If
Run Code Online (Sandbox Code Playgroud)
但我得到了一个
运行时错误对象不支持属性或方法
在线
Set wbexcel = objexcel.Workbook.Add
Run Code Online (Sandbox Code Playgroud)
我引用了Excel对象库.
当我们运行更新查询时,我们得到提示,说'这些记录将会更新.你想继续'是否有可能将提示消息中的值捕获到一个变量,即要更新的记录数.
我有一个带有几个按钮的表单.我想创建一个按钮,在按钮的每个功能完成后,将一个接一个地执行所有按钮.另外,我想更改按钮的颜色以显示正在执行的按钮.我该怎么做呢?
我有一个带有文本字段的访问表.它具有字母数字值.但我希望所有值都至少为3位数.所以我想在所有单个或两个数字值前添加零
.
5 must become 005
89 must become 089
Run Code Online (Sandbox Code Playgroud)
如何编写查询以更新表中的所有值.
谢谢tksy