如何用变量给excel单元格赋值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用变量给excel单元格赋值相关的知识,希望对你有一定的参考价值。
1、首先打开一个工作样表作为例子。
2、使用alt+f11组合快捷键进入vbe编辑器,插入一个新的模块,并在模块中输入以下代码:Sub test2()Worksheets("Sheet1").Range("A1").Value =
_Worksheets("Sheet1").Range("A5").ValueMsgBox "现在A1单元格中的值也为" &
_Worksheets("Sheet1").Range("A5").ValueEnd Sub
3、可以看到这里指定了中名为sheet1的工作表,并使用了range选取了a1单元格,选择单元格值的属性。换个方式说就是sheet1中a1单元格是对象,value值是属性。
4、这里有个下划线,在vba中是作为连接符存在的,意思是下一行的代码是链接到本行代码后,不是中断的语句。
5、使用msgbox函数来显示一段信息,提示a1的单元格值为,后面链接了a5单元格的值,其实因为前面有赋值,所以这里直接写a1单元格的值也是可以的。
6、因为这里的对象很统一,所以代码我们可以用with简写,那么我们只用写一个with语句像下面这样With Worksheets("sheet1")
.Range("A1").Value = _
.Range("A5").Value
MsgBox "现在A1单元格中的值也为" & _
.Range("A5").Value
End With。
7、可以看到代码运行成功,a1和a5单元格内的值一样,证明赋值成功。
8、
X = sheets(1).range("A1")
假设X经过计算后,得到一个变量值Y,那么把Y赋值给A1,语句为:
sheets(1).range("A1")=Y
这样就实现了单元格与变量之间的相互赋值
关于此例中涉及到的VBA中变量的相关知识:
1、什么是变量
变量是一个命名的内存位置。是在程序或代码运行过程中,用于临时存储数据,并且其存储的数据可以根据需要发生改变的一个命名项目。
变量由名称(变量名)和数据类型指定:
变量名——用来引用变量
数据类型——确定变量所能存储信息的种类以及所占存储空间的大小
2、变量的命名规则
(1)名称是由字母(A-Z,a-z)或数字和下划线“_”的任意组合。(在Excel 2002以后的版本中也可以包含中文);最后一个字符可以是类型说明符;
(2)变量名的长度不得超过255个字符
(3)变量名在有效的范围内必须是唯一的。有效的范围就是引用变量可以被程序识别的作用范围 例如一个过程、一个窗体等等;
(4)变量名不能是VBA中的保留字(关键字),也不能是末尾带类型说明符的保留字,但可以把保留字嵌入变量名。
说明:
(1)变量名是不区分大小写的。如ABC、aBc、abc等都是一样的;
(2)定义和使用变量时,通常要把变量名定义为容易使用阅读和能够描述所含数据用处的名称;
(3)根据需要混合使用大小写字母和数字。如果需要使用多单词组,变量中每个单词的第一个字母大写,例如:DataTemp表示临时数据,也可以两个单词中下划线分隔,例如:Last_Num;
(4)对于变量名也有更好的建议,每个变量名以两个或三个字符缩写开始,这些字符缩写对应于变量要存储数据的数据类型。例如strWorksheet as string表用来示工作表名,前缀str表示当前变量的类型。
如何用Apache POI读取Excel的单元格自定义名称的值
参考技术A 可以看看这一页要一个其中的例子
Java code
// Setup code
String cellName = "TestName";
Workbook wb = getMyWorkbook(); // retrieve workbook
// Retrieve the named range
// Will be something like "$C$10,$D$12:$D$14";
int namedCellIdx = wb.getNameIndex(cellName);
Name aNamedCell = wb.getNameAt(namedCellIdx);
// Retrieve the cell at the named range and test its contents
// Will get back one AreaReference for C10, and
// another for D12 to D14
AreaReference[] arefs = AreaReference.generateContiguous(aNamedCell.getRefersToFormula());
for (int i=0; i<arefs.length; i++)
// Only get the corners of the Area
// (use arefs[i].getAllReferencedCells() to get all cells)
CellReference[] crefs = arefs[i].getCells();
for (int j=0; j<crefs.length; j++)
// Check it turns into real stuff
Sheet s = wb.getSheet(crefs[j].getSheetName());
Row r = s.getRow(crefs[j].getRow());
Cell c = r.getCell(crefs[j].getCol());
// Do something with this corner cell
本回答被提问者和网友采纳
以上是关于如何用变量给excel单元格赋值的主要内容,如果未能解决你的问题,请参考以下文章