- 引用 Application 对象的 ActiveCell 属性:
' Visual Basic
rng = ThisApplication.ActiveCell
// C#
rng = ThisApplication.ActiveCell;
- 使用对象的 Range 属性可指定一个范围:
' Visual Basic
rng = ws.Range("A1")
rng = ws.Range("A1:B12")
// C#
rng = ws.get_Range("A1",Type.Missing);
rng = ws.get_Range("A1:B12",Type.Missing);
- 使用工作表的 Cells 属性可指定单个行和列的值:
' Visual Basic
' The Cells collection returns an Object.
' Convert it to a Range object explicitly.
rng = DirectCast(ws.Cells(1, 1), Excel.Range)
// C#
// The Cells collection returns an Object.
// Convert it to a Range object explicitly.
rng = (Excel.Range)ws.Cells[1,1];
- 指定一个范围的“角”;也可直接引用范围的 Cells、Rows 或 Columns 属性;这几种情况下该属性都返回一个范围:
' Visual Basic
rng = ws.Range("A1", "C5")
rng = ws.Range("A1", "C5").Cells
rng = ws.Range("A1", "C5").Rows
rng = ws.Range("A1", "C5").Columns
// C#
rng = ws.get_Range("A1", "C5");
rng = ws.get_Range("A1", "C5").Cells;
rng = ws.get_Range("A1", "C5").Rows;
rng = ws.get_Range("A1", "C5").Columns;
- 引用命名范围:
' Visual Basic
rng = ThisApplication.Range("SomeRangeName")
// C#
rng = ThisApplication.get_Range("SomeRangeName", Type.Missing);
- 引用特定的行或列或者由行和列构成的范围;请注意,这些 Rows 和 Columns 属性分别返回一个 Object,如果将 Option Strict 设置为 On,则需要进行转换:
' Visual Basic
rng = DirectCast(ws.Rows(1), Excel.Range)
rng = DirectCast(ws.Rows("1:3"), Excel.Range)
rng = DirectCast(ws.Columns("B:E"), Excel.Range)
// C#
rng = (Excel.Range)ws.Rows[1,Type.Missing];
rng = (Excel.Range)ws.Rows["1:3",Type.Missing];
rng = (Excel.Range)ws.Columns["B:E",Type.Missing];
- 使用 Application 对象的 Selection 属性返回与选定的单元格相对应的范围:
' Visual Basic
System.Diagnostics.Debug.WriteLine(ThisApplication.Selection.Address)
// C#
System.Diagnostics.Debug.WriteLine(((Excel.Range)
ThisApplication.Selection).get_Address(
Type.Missing, Type.Missing, Excel.XlReferenceStyle.xlA1,
Type.Missing, Type.Missing));
- 创建一个包含两个范围的并集的范围(在引号中指定这两个范围,之间以逗号分隔):
' Visual Basic
rng = ThisApplication.Range("A1:D4, F2:G5")
' You can also use the Application object's Union
' method to retrieve the intersection of two ranges:
rng1 = ThisApplication.Range("A1:D4")
rng2 = ThisApplication.Range("F2:G5")
rng = ThisApplication.Union(rng1, rng2)
// C#
rng = ThisApplication.get_Range("A1:D4","F2:G5");
// You can also use the Application object's Union
// method to retreive the intersection of two ranges:
rng1 = ThisApplication.get_Range("A1","D4");
rng2 = ThisApplication.get_Range("F2","G5");
rng = ThisApplication.Union(rng1, rng2, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
- 创建一个表示两个范围的交集的范围(在引号中指定这两个范围,之间以逗号分隔):
' Visual Basic
rng = ThisApplication.Range("A1:D16 B2:F14")
' You can also use the Application object's Intersect
' method to retrieve the intersection of two ranges:
rng1 = ThisApplication.Range("A1:D16")
rng2 = ThisApplication.Range("B2:F14")
rng = ThisApplication.Intersect(rng1, rng2)
// C#
rng = ThisApplication.get_Range("A1:D16","B2:F14");
// You can also use the Application object's Intersect
// method to retrieve the intersection of two ranges:
rng1 = ThisApplication.get_Range("A1","D16");
rng2 = ThisApplication.get_Range("B2","F14");
rng = ThisApplication.Intersect(rng1, rng2, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
- 使用范围的 Offset 属性可检索相对于原始范围的范围;以下实例将内容添加到位于第 1 行第 1 列的单元格下方的范围:
' Visual Basic
rng = DirectCast(ws.Cells(1, 1), Excel.Range)
Dim i As Integer
For i = 1 To 5
rng.Offset(i, 0).Value = i.ToString
Next
// C#
rng = (Excel.Range)ws.Cells[1,1];
for(int i = 1; i <= 5; i++)
rng.get_Offset(i,0).Value2 = i.ToString();
- 使用范围的 CurrentRegion 属性可检索代表当前区域的范围,当前区域指的是由最近的空行和空列所界定的区域:
' Visual Basic
System.Diagnostics.Debug.WriteLine( _
ThisApplication.Range("C3").CurrentRegion.Address())
// C#
System.Diagnostics.Debug.WriteLine(ThisApplication.get_Range(
"C3", Type.Missing).CurrentRegion.get_Address(
Type.Missing, Type.Missing,
Excel.XlReferenceStyle.xlA1, Type.Missing, Type.Missing));
- 使用范围的 Areas 属性可检索一组范围,每个范围对应于该范围内容中的一个区域:以下代码要求工作表中有一个名为“rangeTest”的范围:
' Visual Basic
rng = ThisApplication.Range("rangeTest")
Dim i As Integer
For i = 1 To rng.Areas.Count
System.Diagnostics.Debug.WriteLine(rng.Areas(i).Address)
Next
// C#
rng = ThisApplication.get_Range("rangeTest",Type.Missing);
for(int i = 1; i <= rng.Areas.Count; i++)
System.Diagnostics.Debug.WriteLine(
rng.Areas[i].get_Address(Type.Missing,
Type.Missing, Excel.XlReferenceStyle.xlA1, Type.Missing,
Type.Missing));
-
使用 End 属性以及 XlDirection 枚举中的值 (xlUp、xlToRight、xlToLeft、xlDown),可检索代表该区域末尾处的单元格的范围(如同按下了枚举值所描述的键一样):
' Visual Studio
With ThisApplication.Selection
System.Diagnostics.Debug.WriteLine(.End(
Excel.XlDirection.xlToRight).Address)
System.Diagnostics.Debug.WriteLine(.End(
Excel.XlDirection.xlToLeft).Address)
System.Diagnostics.Debug.WriteLine(.End(
Excel.XlDirection.xlUp).Address)
System.Diagnostics.Debug.WriteLine(.End(
Excel.XlDirection.xlDown).Address)
End With
// C#
rng = (Excel.Range)ThisApplication.Selection;
System.Diagnostics.Debug.WriteLine(rng.get_End(
Excel.XlDirection.xlToRight).get_Address(
Type.Missing, Type.Missing, Excel.XlReferenceStyle.xlA1,
Type.Missing, Type.Missing));
System.Diagnostics.Debug.WriteLine(rng.get_End(
Excel.XlDirection.xlToLeft).get_Address(
Type.Missing, Type.Missing, Excel.XlReferenceStyle.xlA1,
Type.Missing, Type.Missing));
System.Diagnostics.Debug.WriteLine(rng.get_End(
Excel.XlDirection.xlUp).get_Address(
Type.Missing, Type.Missing, Excel.XlReferenceStyle.xlA1,
Type.Missing, Type.Missing));
System.Diagnostics.Debug.WriteLine(rng.get_End(
Excel.XlDirection.xlDown).get_Address(
Type.Missing, Type.Missing, Excel.XlReferenceStyle.xlA1,
Type.Missing, Type.Missing));
- 使用 EntireRow 或 EntireColumn 属性引用包含指定范围的行或列。以下代码要求工作表中有一个名为“rangeTest”的范围:
' Visual Basic
rng = ThisApplication.Range("rangeTest")
System.Diagnostics.Debug.WriteLine(rng.Areas(2).EntireRow.Address)
// C#
rng = ThisApplication.get_Range("rangeTest",Type.Missing);
System.Diagnostics.Debug.WriteLine(rng.Areas[2].EntireRow.get_Address(
Type.Missing, Type.Missing, Excel.XlReferenceStyle.xlA1,
Type.Missing, Type.Missing));
相关推荐
本文将深入解析VBA代码中引用Excel工作表中单元格区域的各种方式,帮助读者掌握这一核心技能。 ### 1. 引用单个单元格 在VBA中引用单个单元格有多种方法: - **直接引用**:`Range("C3")` 或 `[C3]`,是最直接的...
本压缩包"Excel-VBA实用技巧范例-引用工作表.zip"显然是一个关于如何利用VBA在Excel中操作和引用工作表的教程资源。下面将详细介绍相关的知识点: 1. **VBA基础知识**:首先,你需要了解VBA的基础语法,如变量声明...
在Excel VBA编程中,Sheet(工作表)对象是核心组成部分之一,它是处理和操作Excel数据的主要接口。在Excel 2010中,VBA(Visual Basic for Applications)提供了强大的功能来控制工作簿中的各个工作表。本章将深入...
在Excel VBA宏编程中,设置工作表模块的对象名称是一项重要的技能,这有助于提高代码的可读性、可维护性和效率。本实例源代码着重展示了如何通过VBA宏来实现这一功能。以下是对这个主题的详细说明: 1. **VBA...
4. **动态公式和命名范围**:使用OFFSET、INDIRECT等动态公式,以及命名范围,使数据引用在新工作表中自动更新。 5. **工作表副本**:了解如何复制已有工作表并进行修改,形成新的工作表。 6. **自动化工具**:...
3. **工作表对象**:在VBA中,工作表是Worksheet对象,可以通过Sheets或Worksheets集合来引用。例如,`Sheets("Sheet1")`或`Worksheets(1)`可以引用第一个工作表。 4. **工作表操作**:VBA允许你对工作表进行各种...
2. **工作表对象**:在VBA中,工作表被表示为Worksheet对象。你可以通过该对象访问和操作工作表的属性和方法,如名称、行数、列数等。例如,`Sheets("Sheet1")`引用了名为"Sheet1"的工作表。 3. **工作表操作**:...
3. **范围对象(Range)**:VBA中的Range对象代表了工作表上的一个或多个单元格。通过Range,我们可以读取、写入数据,或者执行其他操作,如`Range("A1:C10")`选取A1到C10的区域。 4. **数据读取与写入**:VBA提供...
1. **工作表对象模型**:在VBA中,工作表被表示为Worksheet对象。你可以通过Sheets或Worksheets集合来访问它们,例如`Sheets("Sheet1")`或`Worksheets(1)`。 2. **工作表操作**:包括选择、激活、隐藏、显示、复制...
4. **Range对象和细胞引用**:在VBA中,Range对象表示工作表上的一个或多个单元格。我们可以通过行号和列号(例如A1,B2等)或者名称(例如Sheet1!A1)来引用单元格。 5. **循环和条件语句**:隐藏重复数据通常需要...
1. **工作表对象**:在VBA中,工作表是Worksheet类型的对象,代表Excel中的一个工作表。你可以通过Sheets或Worksheets集合访问它,例如`Sheets("Sheet1")`或`Worksheets(1)`。 2. **工作表操作**: - **选择和激活...
在“excel_VBA快速合并多表数据”这个主题中,我们将深入探讨如何利用VBA宏来高效地合并多个工作表的数据,这对于处理大量表格数据的办公人员来说非常实用。 首先,我们需要了解VBA的基础知识。VBA是一种基于Visual...
3. **工作表操作**:VBA提供了多种操作工作表的函数和方法,如Sheets对象用于引用或操作工作表,Activate使某个工作表成为活动工作表,Select选择工作表,以及Copy和Delete方法来复制或删除工作表。 4. **费用支出...
5. **遍历工作表数据**:通过For Each循环,可以遍历工作表中的所有单元格或特定范围。例如,遍历A1到B10的单元格: ``` For Each cell In Range("A1:B10") ' 执行操作,如打印单元格值 Debug.Print cell.Value ...
例如,`Worksheets("Sheet1")`可以引用名为“Sheet1”的工作表,`.Activate`方法可以激活工作表,`.Range`属性用于访问工作表上的单元格或单元格范围。 4. **商品促销表操作**:在这个实例中,可能涉及到的操作包括...
1. 创建新工作表:VBA中的Sheets.Add方法可以用来添加新的工作表,例如`Sheets.Add After:=Sheets(Sheets.Count)`会在现有工作表之后添加一个新的工作表。 2. 重命名工作表:工作表的名称可以通过`Sheet.Name`属性...
在这个实例中,我们需要使用`Workbook`对象来操作当前打开的工作簿,以及`Worksheets`集合来引用工作表。 2. **VBA代码的编写与运行**:在VBA编辑器中,用户可以创建新的模块,然后在模块中编写宏代码。本例中的宏...
PACS代码查询表是一种针对科学研究领域中科研工作者所使用的专业工具。PACS全称为Physics and Astronomy Classification Scheme(物理学和天文学分类方案),这是一套用于分类和索引物理及相关学科文献的编码系统。...
通过以上知识点,我们可以看出,"Excel-VBA宏编程实例源代码-单元格综合应用-季度工作考核工作表.zip"中的实例不仅展示了VBA在处理单元格数据方面的灵活性,还体现了VBA在实现办公自动化和提高工作效率方面的能力。...
该方法使用了 Application.FileDialog 对话框选择存放路径,Workbook.SaveAs 方法保存工作簿的更改,.Find 方法查找工作表中的外部引用,并将其转换为值,Sheets.Copy 方法将工作表复制到工作簿的另一位置,Shell ...