使用VBA对Excel中列名称与列号之间进行转换.docx

上传人:b****6 文档编号:12989005 上传时间:2023-06-09 格式:DOCX 页数:14 大小:15.77KB
下载 相关 举报
使用VBA对Excel中列名称与列号之间进行转换.docx_第1页
第1页 / 共14页
使用VBA对Excel中列名称与列号之间进行转换.docx_第2页
第2页 / 共14页
使用VBA对Excel中列名称与列号之间进行转换.docx_第3页
第3页 / 共14页
使用VBA对Excel中列名称与列号之间进行转换.docx_第4页
第4页 / 共14页
使用VBA对Excel中列名称与列号之间进行转换.docx_第5页
第5页 / 共14页
使用VBA对Excel中列名称与列号之间进行转换.docx_第6页
第6页 / 共14页
使用VBA对Excel中列名称与列号之间进行转换.docx_第7页
第7页 / 共14页
使用VBA对Excel中列名称与列号之间进行转换.docx_第8页
第8页 / 共14页
使用VBA对Excel中列名称与列号之间进行转换.docx_第9页
第9页 / 共14页
使用VBA对Excel中列名称与列号之间进行转换.docx_第10页
第10页 / 共14页
使用VBA对Excel中列名称与列号之间进行转换.docx_第11页
第11页 / 共14页
使用VBA对Excel中列名称与列号之间进行转换.docx_第12页
第12页 / 共14页
使用VBA对Excel中列名称与列号之间进行转换.docx_第13页
第13页 / 共14页
使用VBA对Excel中列名称与列号之间进行转换.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

使用VBA对Excel中列名称与列号之间进行转换.docx

《使用VBA对Excel中列名称与列号之间进行转换.docx》由会员分享,可在线阅读,更多相关《使用VBA对Excel中列名称与列号之间进行转换.docx(14页珍藏版)》请在冰点文库上搜索。

使用VBA对Excel中列名称与列号之间进行转换.docx

使用VBA对Excel中列名称与列号之间进行转换

使用VBA对Excel中列名称与列号之间进行转换

这里的列名称指的是A、B、C等样式的列,列号指列的编号,如1、2、3等等。

 

转换之后,A列对应的列号为1,反之,列号为1的列转换之后为A。

函数如下:

1、通过列名称转换成对应的列号。

FunctionGetColumnNum(ByValColumnNameAsString)AsInteger

DimResultAsInteger,FirstAsInteger,LastAsIntegerResult=1

IfTrim(ColumnName)<>""Then

IfLen(ColumnName)=1Then

Result=Asc(UCase(ColumnName))-64

ElseIfLen(ColumnName)=2Then

IfUCase(ColumnName)>"IV"ThenColumnName="IV"

First=Asc(UCase(Left(ColumnName,1)))-64

Last=Asc(UCase(Right(ColumnName,1)))-64

Result=First*26+Last

EndIf

EndIf

GetColumnNum=ResultEndFunction

测试:

SubTestGetColumnNum()

DimColumnNumAsInteger

ColumnNum=GetColumnNum("AA")

MsgBoxColumnNum,vbInformation,"测试"

EndSub

2、通过列号转换成对应的列名称。

FunctionGetColumnName(ByValColumnNumAsInteger)AsString

DimFirstAsInteger,LastAsInteger

DimResultAsString

IfColumnNum>256ThenColumnNum=256

First=Int(ColumnNum/27)

Last=ColumnNum-(First*26)

IfFirst>0Then

Result=Chr(First+64)

EndIfIfLast>0Then

Result=Result&Chr(Last+64)

EndIf

GetColumnName=Result

EndFunction测试:

SubTestGetColumnName()

DimColumnNameAsString

ColumnName=GetColumnName(27)

MsgBoxColumnName,vbInformation,"测试"

EndSub

 

3、说明

在以上两个函数中,如果输入的参数大于Excel的最大列号"IV"(256),则返回的值为最大的列数。

或有:

getcolname=iif(intcol\26,chr(64+intcol\26),"")&chr(64+intcolmod26)即可实现

其中:

iif(intcol\26,chr(64+intcol\26),"")返回列号的第一位如AB列的第一位为A,chr(64+intcolmod26)返回列号的低位,如如AB列的低位为B;

解释:

如果intcol=2,则intcol\26为假,函数iif返回“空格”,而chr(65+1mod26)=65,65为A,所以1对应的列号为b,此种算法有错误。

如果intcol>26则intcol\26为真,函数iif返回

除法(/)、整数除法(\)、求模运算(Mod)

IIF函数

根据表达式的值,来返回两部分中的其中一个。

IIF(expr,truepart,falsepart)

IIF函数的语法含有下面这些命名参数:

expr必要参数。

用来判断真伪的表达式。

truepart必要参数。

如果expr为True,则返回这部分的值或表达式。

falsepart必要参数。

如果expr为False,则返回这部分的值或表达式。

代码

字符

代码

字符

代码

字符

代码

字符

 

0

32

[空格]

64

@

96

`

 

1

33

!

65

A

97

a

 

2

34

"

66

B

98

b

 

3

35

#

67

C

99

c

 

4

36

$

68

D

100

d

 

5

37

%

69

E

101

e

 

6

38

&

70

F

102

f

 

7

39

'

71

G

103

g

 

8

**

40

72

H

104

h

 

9

**

41

73

I

105

i

 

10

**

42

*

74

J

106

j

 

11

43

+

75

K

107

k

 

12

44

76

L

108

l

 

13

**

45

-

77

M

109

m

 

14

46

.

78

N

110

n

 

15

?

47

/

79

O

111

o

 

16

?

48

0

80

P

112

p

 

17

?

49

1

81

Q

113

q

 

18

?

50

2

82

R

114

r

 

19

_

51

3

83

S

115

s

 

20

_

52

4

84

T

116

t

 

21

_

53

5

85

U

117

u

 

22

?

54

6

86

V

118

v

 

23

?

55

7

87

W

119

w

 

24

?

56

8

88

X

120

x

 

25

?

57

9

89

Y

121

y

 

26

?

58

:

90

Z

122

z

 

27

_

59

;

91

[

123

{

 

28

?

60

<

92

\

124

|

 

29

?

61

=

93

]

125

}

 

30

-

62

>

94

^

126

~

 

31

63

?

95

_

127

?

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2