我正在使用 Visual Studio 2010 从 Excel 工作簿模板创建项目。VS2010 已经给了我一个带有一个工作表的工作簿。我又加了一个。该项目由以下文件组成: ThisWorkbook.vb Sheet1.vb Sheet2.vb
每个文件由每个对象的类组成:Sheet1.vb 有其 Sheet1 类,Sheet2.vb Sheet2 类等等。
从 MSDN 帮助和其他来源,我了解到我可以从 vb 文件或另一个类,使用 Globals 语句的其他类对象访问:
Me.Range("A10").Value = "Validation time:"
Me.Range("B10").Value = ValidationTime_T1.Item(ValidationTime_T1.Count - 1) - ValidationTime_T0.Item(ValidationTime_T0.Count - 1)
Dim x As Double
Dim rowOffset As Integer
rowOffset = 3
For x = 0 To JobCounter
Globals.Sheet2.Cells(x + rowOffset, 1) = x
Globals.Sheet2.Cells(x + rowOffset, 2) = ASy_Start_Mem.Item(x)
Globals.Sheet2.Cells(x + rowOffset, 3) = WSZ_Start_Mem.Item(x)
Globals.Sheet2.Cells(x + rowOffset, 4) = WSZ_Start_Pk_Mem.Item(x)
Globals.Sheet2.Cells(x + rowOffset, 5) = PFU_Start_Mem.Item(x)
如您所见,我将数据从一张表移动到另一张表,或者将内存中的数据从 sheet1 放到 sheet2 中。
到目前为止,一切都很好。没有多少问题是我自己解决不了的。
我想在这里指出我过去 4 年的背景是 C、C++、Perl 和 VBA 是件好事,所以我在 VB 上苦苦挣扎,因为我发现 .Net 更有用,直到我不得不使用它与Excel,这让我很难过。
现在,我需要根据位置选择特定的单元格,它并不总是相同的位置,所以我需要动态选择它们,没有硬编码,正如我在 MSDN、论坛、StackOverFlow 和不同站点中找到的那样,他们给出的解决方案是使用:
Globals.Sheet2.Range("C7").Select()
是的,这对于您使用字符串选择的特定单元格来说很好。
问题是我每次都需要根据每天的数据选择不同的单元格,而且我不知道如何使用 Range。在前面的代码中,您可以看到我为此使用了 Cells。
我试过了:
Globals.Sheet2.Range(Globals.Sheet2.Cells(2, 2), Globals.Sheet2.Cells(6, 3)).Select()
因为 Range 定义之一表明我可以接收两个 Cells 对象作为参数,但给出了错误。我尝试为单元格位置创建 Range 对象。我已经将 Object 对象与 CType 一起使用,但它也失败了。
如果有人可以帮助我如何动态选择单元格,无论是使用 Range 或 Cells,还是两者兼而有之,或者如果您有其他解决方案,我将很高兴。