更改变量列的文本大小写

时间:2019-05-09 17:30:19

标签: excel vba

我有一个excel文件,每个月在不同的列中列出健身会员的姓名。我需要将其名称更改为适当的大小写。 使用:

[B:B] = [INDEX(PROPER(B:B),)] 

更改B列中所有文本的大小写。

很遗憾,我的数据每月更改一次“会员名称”列。

我不知道如何在上面的代码中使用变量代替B:B。

一旦找到标题正确的“成员名称”列,便从该单元格地址中提取列字母。如何代替B:B输入它?

这是我尝试过的:

1)找到“会员名称”标题所在的单元格,然后选择该单元格:

Set MyMember = Cells.Find(What:="Member Name", LookIn:=xlFormulas, LookAt _
        :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)
        Range(MyMember.Address).Select

2)读取所选单元格的列号,并使用函数将列号转换为列字母:

MyCol1 = ConvertToLetter(ActiveCell.Column)

将列号转换为列字母的功能

Function ConvertToLetter(iCol As Integer) As String
   Dim iAlpha As Integer
   Dim iRemainder As Integer
   iAlpha = Int(iCol / 27)
   iRemainder = iCol - (iAlpha * 26)
   If iAlpha > 0 Then
      ConvertToLetter = Chr(iAlpha + 64)
   End If
   If iRemainder > 0 Then
      ConvertToLetter = ConvertToLetter & Chr(iRemainder + 64)
   End If
End Function

所以,现在我在变量MyCol1中有列字母。我想用MyCol1中的值将B:B替换为以下代码:

[B:B] = [INDEX(PROPER(B:B),)] 

输入变量MyCol1不起作用:

[MyCol1:MyCol1] = [INDEX(PROPER(MyCol1:MyCol1),)] 

我很困惑。我尝试将MyCol1转换为字符串和范围,但没有任何效果。

任何帮助将不胜感激。

0 个答案:

没有答案