excel vba 数组中第1位字符为0,赋给单元格时如何将0保留?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel vba 数组中第1位字符为0,赋给单元格时如何将0保留?相关的知识,希望对你有一定的参考价值。
excel vba 数组中,某一列数为字符型,均为以0开头的数字型字符,用变量类型函数检查也均是字符型,但将数组中的值赋给单元格时,单元里的数字前面的0就没有了,用变量类型函数检查单元格变成了数值型数据。用在数组前加" "的办法也不管用,用cstr/str函数也没有搞出来,我要在单元格里保留第1位的0,将其作为字符型数据,怎么处理?请给出VBA代码,谢谢
在字符串的前面加',如下代码
Sub a()Dim str As String
str = "012345676"
[A1] = "'" & str
End Sub
或者将单元格格式设置为 文本
Sub b()Dim str As String
str = "0123456789"
[A2].NumberFormatLocal = "@" '将单元格格式设置为 文本
[A2] = str
End Sub
将单元格格式设置为00000000
Dim str As String
str = "00123456789"
'[A3].NumberFormatLocal = "!00" '如果前面多个0,只想要一个0用这行。
[A3].NumberFormatLocal = Application.WorksheetFunction.Rept("0", Len(str)) '如果前面多个0,保留多个0用这行。
[A3] = str
End Sub 参考技术A 直接将单元格事先设置为文本格式
excel的VBA怎么实现把表中鼠标选中的1个格子的纵横值赋给2个变量?
我要实现的功能是一打开那个EXCEL表,我每次选中1个格子,在VBA中就能把这个格子的纵横坐标取出来,分别赋给2个变量.比如我选到的是B5这个格子,那么VBA中就能把这个选中格子的地址取出来,把B和5分别赋给事先设的2个string变量.然后我就可以用这2个变量来做其它很多事情了.
我只知道Auto_Open 过程可以支持开excel表就运行过程中的语句
activecell.address 可以得到当前选中格子的地址,但它得到的是"$B$5"这样的格式,不好分开.请教简单方法
返回B5(也叫相对引用地址)格式单元格的地址用法是这样的:ActiveCell.Address(False, False)
只返回行号的是:ActiveCell.Row
只返回列号的是:ActiveCell.Column
返回列号的字母的是:Chr(ActiveCell.Column+Asc("A")-1)或Chr(ActiveCell.Column+64)
引用单个格子用Cells(行号,列号),
或Range(列字母 & 行号)
引用成片格子用Range(Cells(行号,列号),Cells(行号,列号))
或Range(Range(列字母 & 行号),Range(列字母 & 行号)) 参考技术A Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
StrRow = Target.Row
StrCol = Target.Column
End Sub
以上是关于excel vba 数组中第1位字符为0,赋给单元格时如何将0保留?的主要内容,如果未能解决你的问题,请参考以下文章
VBA 使用字符串数组作为子字符串参数 InStr 函数 (Excel)
以编程方式(VBA,C#)将数组字符串设置为范围时,奇怪的单元格中字符数限制