如何用函数或者VBA在excel单元格里产生缩写?

作者&投稿:阮庾 (若有异议请与网页底部的电邮联系)
在EXCEL表格中如何在A列输入名称,B列直接出现首字母的缩写~

完全可以实现!
'第一步:下面是一个VBA自定义函数,按ALT+F11,插入模块,在右面窗口中粘贴下面代码。Function hztopy(hzpy As String) As String Dim hzstring As String, pystring As String Dim hzpysum As Integer, hzi As Integer, hzpyhex As Integer hzstring = Trim(hzpy) hzpysum = Len(Trim(hzstring)) pystring = "" For hzi = 1 To hzpysum hzpyhex = "&H" + Hex(Asc(Mid(hzstring, hzi, 1))) Select Case hzpyhex Case &HB0A1 To &HB0C4: pystring = pystring + "A" Case &HB0C5 To &HB2C0: pystring = pystring + "B" Case &HB2C1 To &HB4ED: pystring = pystring + "C" Case &HB4EE To &HB6E9: pystring = pystring + "D" Case &HB6EA To &HB7A1: pystring = pystring + "E" Case &HB7A2 To &HB8C0: pystring = pystring + "F" Case &HB8C1 To &HB9FD: pystring = pystring + "G" Case &HB9FE To &HBBF6: pystring = pystring + "H" Case &HBBF7 To &HBFA5: pystring = pystring + "J" Case &HBFA6 To &HC0AB: pystring = pystring + "K" Case &HC0AC To &HC2E7: pystring = pystring + "L" Case &HC2E8 To &HC4C2: pystring = pystring + "M" Case &HC4C3 To &HC5B5: pystring = pystring + "N" Case &HC5B6 To &HC5BD: pystring = pystring + "O" Case &HC5BE To &HC6D9: pystring = pystring + "P" Case &HC6DA To &HC8BA: pystring = pystring + "Q" Case &HC8BB To &HC8F5: pystring = pystring + "R" Case &HC8F6 To &HCBF9: pystring = pystring + "S" Case &HCBFA To &HCDD9: pystring = pystring + "T" Case &HEDC5: pystring = pystring + "T" Case &HCDDA To &HCEF3: pystring = pystring + "W" Case &HCEF4 To &HD1B8: pystring = pystring + "X" Case &HD1B9 To &HD4D0: pystring = pystring + "Y" Case &HD4D1 To &HD7F9: pystring = pystring + "Z" Case Else pystring = pystring + Mid(hzstring, hzi, 1) End Select Next hztopy = pystringEnd Function'第二步:在代码窗口左边对应的工作表名称那里双击,粘贴下面代码进去,即可实现A列输入名字,B列显示首字母Private Sub Worksheet_Change(ByVal Target As Range)c = Target.ColumnR = Target.RowIf R > 1 And c = 1 Then Cells(R, 2) = hztopy(Range("A" & R))End Sub

没看到附件,所以只能猜一下,如果你想得到B1:Z1最大值可以用函数=MAX(B1:Z1)得到,但想把这个赋值到工作表的名称上函数应该不行,要用VBA。

用函数的方法如下:
增加一列辅助列D列,用来控制取A列第几行的数据。
D1=1
E1=TRIM(A1) 英文单词列
F1=B1 中文解释列
D2=IF(ISTEXT(D1),D1+1,IF(ISERROR(FIND(" ",E1)),D1+1,DOLLAR(D1)))
E2=IF(ISNUMBER(D2),TRIM(INDEX(A:A,D2)),LEFT(E1)&"."&MID(E1,FIND(" ",E1),255))
F2=INDEX(B:B,D2)
将D2:F2的公式向下拉即可。

有两个单词就增行并缩写?
代码如下
Sub test()
Dim arr, brr(), x&, i&, j&
arr = Range("A1:A" & Range("A65536").End(xlUp).Row)
For x = 1 To UBound(arr)
i = InStr(arr(x, 1), " ")
If i > 0 Then
j = j + 1
ReDim Preserve brr(1 To j)
brr(j) = arr(x, 1)
j = j + 1
ReDim Preserve brr(1 To j)
brr(j) = UCase(Left(arr(x, 1), 1)) & "." & Mid(arr(x, 1), i + 1, Len(arr(x, 1)))
Else
j = j + 1
ReDim Preserve brr(1 To j)
brr(j) = arr(x, 1)
End If
Next x
Range("C1").Resize(UBound(brr)) = Application.Transpose(brr)
End Sub
有B列修改一下就可以了
Sub test()
Dim arr, brr(), x&, i&, j&
arr = Range("A1:B" & Range("A65536").End(xlUp).Row)
For x = 1 To UBound(arr)
i = InStr(arr(x, 1), " ")
If i > 0 Then
j = j + 1
ReDim Preserve brr(1 To 2, 1 To j)
brr(1, j) = arr(x, 1)
brr(2, j) = arr(x, 2)
j = j + 1
ReDim Preserve brr(1 To 2, 1 To j)
brr(1, j) = UCase(Left(arr(x, 1), 1)) & "." & Mid(arr(x, 1), i + 1, Len(arr(x, 1)))
brr(2, j) = arr(x, 2)
Else
j = j + 1
ReDim Preserve brr(1 To 2, 1 To j)
brr(1, j) = arr(x, 1)
brr(2, j) = arr(x, 2)
End If
Next x
Range("C1").Resize(UBound(brr, 2), 2) = Application.Transpose(brr)
End Sub

Sub iTest()
Dim a, c, i, r, s
c = "A"
r = Cells(65536, c).End(xlUp).Row
With Range(Cells(1, c), Cells(r, c)).Resize(, 2)
a = .Cells
For i = r To 1 Step -1
s = Split(a(i, 1), " ")
If UBound(s) > 0 And (Not s(0) Like "?.") Then
s(0) = UCase(Left(s(0), 1)) & "."
a(i, 2) = s(0) & " " & a(i, 2)
.Rows(i).Offset(1).EntireRow.Insert
.Cells(i + 1, 1).Resize(1, 2) = Array(Join(s, " "), a(i, 2))
End If
Next
End With
MsgBox "ok"
End Sub

把问题作为内容(邮件主题一定要包含“excel”,本人以此为依据辨别非垃圾邮件,以免误删)、excel样表文件(请特别注意:要03版的(如果是03以后的,把文件“另存为”一下,类型框可以选择03的),把现状和目标效果表示出来)作为附件发来看下 yqch134@163.com


VBA技术资料MF99:在代码中使用VLookUp函数
VBA技术资料MF99:在代码中使用VLookUp函数详解VBA作为强大的自动化工具,通过MF99资料,我们将深入探讨如何在代码中有效地运用VLookUp函数。尽管这个函数在初学者中广受欢迎,但作者并不推荐过度依赖,因为VBA提供了其他更灵活的替代方案。MF99资料不仅提供具体代码示例,还包含实战应用的讲解。MF99资料的核心...

如何通过vba调用函数
在vba系统中,系统也提供了相当多的vba系统函数,如instr,cstr,val等系统函数。语法结构,同Sub类似。[Public]、[Private]、[Static]Function函数名([参数])[As数据类型][语句块][函数名=过程结果][ExitFunction]语句块[函数名=过程结果]EndFunction公有与私有自定义函数的区别:同sub相似,私有的...

vba中if函数or的使用
if(条件语句,条件正确输出,条件错误输出)or函数放在条件语句中,用以多个条件并列的情况 如if(or(条件1,条件2,…),条件正确输出,条件错误输出)

vba sumif 函数怎么用
详情请查看视频回答

这个函数公式怎么用vba语句表达出来?
""★"",I4<90,"""),""))"End Sub ```在上述代码中,`Range("K3")` 表示目标单元格,你可以根据需要进行修改。`Formula` 属性用于设置单元格的公式,将目标函数公式作为字符串赋值给它即可。请注意,该函数公式中的字符串参数需要用双引号 `""` 进行转义,以确保能正常应用于VBA代码。

...不用ctrl键单个单个选择,能不能用函数或VBA实现?
Excel里可以利用VBA实现打印指定的多个工作表。软件版本:Office2007 方法如下:1.Excel中有很多工作表,打印A列中名字的工作表:2.Alt+F11,在VBE中输入代码代码:3.F5执行代码,A列中的工作表就会依次被打印出来。

Excel中函数、VBA与宏三者之间的区别?
函数就是现有的app,你想玩游戏,下载个游戏app,想计算了,下载个计算器app,想做计划,下载个schedule app,想看视频,下载个视频app,这些都是现成的,你想用只要搜索就可以下载使用,优点是,方便,缺点是,不是万能的,很多事情找遍所有函数都不能达到目的;VBA呢就是一款没有开发的app,或者你想...

excel中设置的函数如何用VBA代替其实现相同功能
=SUMPRODUCT((录入表!$D$4:$D$6000=A6)*(录入表!$A$4:$A$6000=$G$2)*录入表!$H$4:$H$6000)我怎么看都差不多,就是把H换等G,E,拿上面一个举例吧.有问题再说.VBA代码.sub mainfun()Dim i%, Val1, Val2, Val3 With Sheets("录入表")Val1 = .Cells(6, "A")Val2 = ....

excel 函数和vba哪个功能强大
函数能实现的,VBA都可以实现,VBA可以自定义函数,VBA能实现的基本操作功能函数不能实现。但实际应用中,不是看哪个强大,而是哪项用起来更方便,合适就可以了。函数有时候更简单,不能一概而论。

VBA编程中MsgBox函数怎么用
1. MsgBox的基本语法格式:MsgBox(prompt[, buttons] [, title] [, helpfile, context])2. prompt参数(必选参数):该参数用于表明输出对话框所显示的内容,由于该参数只代表长度为255个字符的一个字符串,因此我们可以使用“&”连接符将各部分字符串连接起来,同时可以借助函数“Chr(10)”实现...

红花岗区13695163335: 关于EXCEL表格中使用函数或VBA给单元格中包含某个量的单元格对应的量单独求和.具体见图片EXCEL的描述. -
校亭甲基: 公式为:=SUMIF(D:D,"*A*",C:C)=SUMIF(D:D,"*B*",C:C)=SUMIF(D:D,"*C*",C:C)=SUMIF(D:D,"*D*",C:C)=SUMIF(D:D,"*E*",C:C)如图所示:

红花岗区13695163335: excel中vba怎么用 -
校亭甲基: 1 打开 Microsoft Office Excel 2007,点击 “开始” ->“Excel 选项”.2 在弹出的对话框中,选择“常规”选项卡,并在右侧点选“在功能区显示'开发工具'选项卡”,并单击“确定".3 在单元格A1中输入“弧度”,单元格B1中输入“角...

红花岗区13695163335: 如何用函数或者VBA在excel单元格里产生缩写? -
校亭甲基: 有两个单词就增行并缩写?代码如下 Sub test() Dim arr, brr(), x&, i&, j& arr = Range("A1:A" & Range("A65536").End(xlUp).Row) For x = 1 To UBound(arr) i = InStr(arr(x, 1), " ") If i > 0 Then j = j + 1 ReDim Preserve brr(1 To j) brr(j) = arr(x, 1) j ...

红花岗区13695163335: 在excel中如何使用公式和函数? -
校亭甲基: 如果不知道公式或函数,点一下函数编辑栏左边的fx,选用你要的函数,并按照...这个意思就是在求和之后再加三.各种函数在EXCEL的插入菜单、函数对话框里面...

红花岗区13695163335: Excel表格中如何自定义函数 -
校亭甲基: VBA之自定义函数 这一贴说的是自定义函数.Excel本身已自带了很多函数,供我们使用,但有些问题用原有的函数解决起来很复杂,甚至是无能为力,但有了VBA,可能就可以现实. 怎样自定义一个函数?下面我们建一个名为RangeCount和...

红花岗区13695163335: 请教一个关于excel中vba函数使用的问题 -
校亭甲基: 1、在excel中的vba里使用内置vba函数的使用方法:调用Application对象的WorksheetFunction属性.示例: 本示例对单元格区域 A1:A10 使用 Min 工作表函数,并显示结果. Set myRange = Worksheets("Sheet1").Range("A1:C10") ...

红花岗区13695163335: 用Excel中的VBA编写函数,函数参数如何引用Excel中的单元格?能给个具体的例子吗? -
校亭甲基: 你要想简便的话,简单的点点,不想用手输入那么麻烦,可以这样:Function XXX(ST As Range) As String XXX = ST.Text End Function 这样便可在Excel中引用"=XXX(A3)"

红花岗区13695163335: 怎样在VBA指令中调用Excel函数 -
校亭甲基: 方法/步骤 打开 Microsoft Office Excel 2007,点击 “开始” ->“Excel 选项”. 在弹出的对话框中,选择“常规”选项卡,并在右侧点选“在功能区显示'开发工具'选项卡”,并单击“确定".在单元格A1中输入“弧度”,单元格B1中输入...

红花岗区13695163335: 如何用vba函数在excel中编程,实现将左边单元格中数据分别填充到右边单 -
校亭甲基: 要求是用 vab 编写函数来写,所以新编写了一个函数,放在新建的模块里,代码比较简单: 效果运行如图:

红花岗区13695163335: 在excel中如何使用vba的宏 -
校亭甲基: 保护公式可以这样:选择不需要保护(需要录入内容)的单元格,设置单元格属性,最后一个“保护”卡里面的”锁定“取消,其它那些没有取消锁定的有公式的单元格自然是锁定状态.下一步是在工具”审阅“(新版本)或者”工具“菜单(旧版本)里面选择”保护工作表“,设置一个密码后确认.完成这两步之后,锁定的单元格内容就无法修改.除非你熟练掌握VBA,或者下定决心熟练掌握VBA,否则没有必要使用宏来实现你的这个保护功能,那样工作量很大,本质上是用程序方法把所有的公式写出来.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网