• 博客(0)
  • 资源 (3)

空空如也

EXECL 提取字符

最近研究了下关于提取EXECL单元格中提取特殊字符的问题,经过一些EXECL共同爱好者(LearningHard)的帮助,终于问题迎刃而解,请各位看官欣赏。 原始单元格: 871-30233中文-KE1-01-01&A字符FDDF显示吧+ABC 按以下要求提取字符 提取中文字 :中文字符显示吧 提取英文字 :KEAFDDFABC 提取数字 :8713023310101 提取特殊字 :----&+ 提取非中文字:871-30233-KE1-01-01&AFDDF;+ABC 提取特殊字和英文字:--KE--&AFDDF;+ABC 此方法是通过VBA功能来实现的,以下是VBA代码: ' 提取中文 Function Chinese(text As String) Dim tempchar, tempname, n, i Dim bol As Boolean n = Len(text) For i = 1 To n tempchar = Mid(text, i, 1) bol = Asc(tempchar) < 0 If bol = True Then tempname = tempname & tempchar End If Next i If tempname = 0 Then tempname = "N/A" Chinese = tempname End Function ' 提取非中文 Function NoChinese(text As String) Dim tempchar, tempname, n, i Dim bol As Boolean n = Len(text) For i = 1 To n tempchar = Mid(text, i, 1) bol = Asc(tempchar) > 0 If bol = True Then tempname = tempname & tempchar End If Next i If tempname = 0 Then tempname = "N/A" NoChinese = tempname End Function '提取数字 Function Number(text As String) Dim tempchar, tempname, n, i Dim bol As Boolean n = Len(text) For i = 1 To n tempchar = Mid(text, i, 1) bol = tempchar Like "#" If bol = True Then tempname = tempname & tempchar End If Next i If tempname = 0 Then tempname = "N/A" Number = Val(tempname) End Function '提取英文字母 Function letter(text As String) Dim tempchar, tempname, n, i Dim bol As Boolean n = Len(text) For i = 1 To n tempchar = Mid(text, i, 1) bol = tempchar Like "[a-z,A-Z]" If bol = True Then tempname = tempname & tempchar End If Next i If tempname = 0 Then tempname = "N/A" letter = tempname End Function ' 提取特殊字符 Function SpecialChar(text As String) Dim tempchar, tempname, n, i Dim bol As Boolean n = Len(text) For i = 1 To n tempchar = Mid(text, i, 1) bol = Asc(tempchar) < 0 Or tempchar Like "[a-z,A-Z]" Or tempchar Like "#" If bol = False Then tempname = tempname & tempchar End If Next i If tempname = 0 Then tempname = "N/A" SpecialChar = tempname End Function ' 提取特殊字符和英文字母 Function SpecialCharandletter(text As String) Dim tempchar, tempname, n, i Dim bol As Boolean n = Len(text) For i = 1 To n tempchar = Mid(text, i, 1) bol = Asc(tempchar) < 0 Or tempchar Like "#" If bol = False Then tempname = tempname & tempchar End If Next i If tempname = 0 Then tempname = "N/A" SpecialCharandletter = tempname End Function 已上传execl附件

2013-02-28

vba execl录入数据后跳转到最上面

采购同事遇到新的问题了,他来找到我,需要我给他设计一个,采购进度管理的表格,要求是他每次录入完或者修改完数据后,自动把采购完成的项目下移动到最后,让那些还没采购完成的项目始终排在最上面的行。这样他可以方便他的日常采购进度的追踪。 问题既然提出来了,我就要尽最大的努力来帮助同事。 1.首先我认为要自动把采购完成的项目下移到最后的话,其实不怎么科学,应该是把采购完成的项目移动到最上面才是科学的,因为要录入新的项目,在最后插入是最方便的,在中间或者最上面插入比较麻烦。 2.我就想到排序的方法可以实现让采购完成的项目移动到最上面。 于是我查阅了一些vba实现execl的自动排序,最终编写好的代码如下(请下载相应的附件execl表格,这样比较容易理解): Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 9 And Target.Column <> 8 And Target.Column <> 7 Or Target.Count > 1 Then Exit Sub On Error Resume Next Range("A2:I999").Sort Key1:=Range("I1"), Order1:=xlAscending, Key2:=Range("H1") _ , Order2:=xlAscending, Key3:=Range("G1") _ , Order3:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _ xlSortNormal, DataOption2:=xlSortNormal End Sub ps:在设计过程中,还进行了进一步的改进,例如:采购进度其实排序关键字段不是只有一个关键字段,而牵涉到3个之多。当然第一关键字还是采购完成日期,后面2个排序关键字段也是能起到追踪进度的作用的。另还加入了数据有效性的设计,让采购进度录入更方便,规范。

2011-10-12

VBA自动生成时间自动计算合计价格.rar

遇到一个问题是这样的:有个做采购的同事,他来找到我,让我给他设计一个execl表格,能完成它日常采购东西的流水账,要求是能够自动输入当天日期和时间。 然后我开始分析这个问题,用=now()这个函数能够做到自动获得当前日期和时间,但是问题在于怎么触发它,于是我有想到if语句。然后我制作一张简单的样表,A2设置为输入序号,B2里放日期和时间,当A2输入内容后,B2自动输入当前日期和时间。那么B2列里设置函数=IF(A2="","",NOW()) 开始以为就这么简单,但是发现这个表格如果重新打开后,所以B列都会变为最新的日期,而且当A2被重新编辑后,B2就会变更日期为最新日期,这样完全实现不了采购同事的需求。于是我查阅了资料,找到了Target更新事件和Offset获得焦点,让他们配合起来达到目的,经过不懈的努力,终于让我把代码写成功了,初步达到了采购同事的要求。特此把代码写在下面。供大家参考(以下代码最好配合实际案例的execl表的环境进行阅读,这样事半功倍,execl表,我把它挂载到一个下载链接吧): Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 1 And Target.Column <> 5 Or Target.Count > 1 Then Exit Sub On Error Resume Next With Target If .Column = 1 And .Offset(0, 1).Value = "" Then '判断该单元格是否已经写入时间 .Offset(0, 1) = Now() End If If .Column = 5 Then '计算合计价格 .Offset(0, 1) = .Offset(0, 0) * .Offset(0, -1) End If End With End Sub

2011-09-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除