1

我一直在编写一些代码来从应用程序中提取数据并将其解析为电子表格。

我的电子表格如下所示:

Scenario     ClientName         ClientNumber

5555        Smith               s0001

6776        Charles           d6666

我有这个代码:

Dim ObjExcel As New Excel.Application Dim sWindow As New WinWindow ObjExcel.Visible = False Dim stext As String

            ObjExcel.Workbooks.Open("c:\data\calcresults.xlsx")
            Dim ObjWS As Excel.Worksheet = ObjExcel.Worksheets("IP")

            Dim iNextRow As Integer = ObjWS.UsedRange.End(Excel.XlDirection.xlDown).Row + 1

            ObjWS.Cells(iNextRow,1 ) = "d66666"
            ObjWS.Cells(iNextRow, 2) = "s77898"

想使用列名而不是索引,例如:

ObjWS.Cells(iNextRow,"Scenario" ) = "新行数据,第一列"

有什么想法我该怎么做?

4

1 回答 1

0

我从您的帖子中猜测您正在打开工作簿并每次都更新相同的列值?

您可以做的是通过选择工作表中的单元格并将名称输入到名称框中来命名 Excel 中的范围,如下所示:

Excel

然后您可以按如下方式操作:

Dim r1 As Range
Set r1 = ActiveSheet.Range("Scenario")

r1.Value = "OOps, changed it!"
r1.Offset(1, 0).Value = "This is A2"

此外,您可以只参考范围:

Dim r As Range
Set r = ActiveSheet.Range("A1")
r.Value = "gello"

您还可以为多个单元格设置范围名称 - 即多行/多列。然后操作:

Dim r2 As Range
Set r2 = ActiveSheet.Range("SomethingElse")
r2.Cells(1) = "Summit Else 0"
r2.Cells(2) = "Summit Else 1"
r2.Cells(3) = "Summit Else 2"

仅访问行/列索引我看不出有什么问题。

于 2012-10-04T15:04:51.280 回答