下面的VBA判断了单元格字符串中是包含中文、英文以及数字的数量。供参考使用
- Imports SpreadsheetGear
- Imports C1.Silverlight
- Imports C1.Silverlight.C1MessageBoxButton
- Imports C1.Silverlight.C1MessageBoxIcon
- Imports Newtonsoft.Json
- Imports Newtonsoft.Json.Linq
- Imports Microsoft.VisualBasic
- Imports System.IO
- Imports System.Text
- Imports System.Net
- Imports System.Windows.forms
- Namespace ExcelViewVBDotnet
- Public Class StandardInterface
- '预留位置1
- '预留位置2
- Dim EV As SpreadsheetGear.Windows.Controls.WorkbookView, AW As SpreadsheetGear.IWorkbook, Range As SpreadsheetGear.IRange
- Public Sub Workbook_Open(OldRoot As Object, NewRoot As Object, Excel As SpreadsheetGear.Windows.Controls.WorkbookView)
- EV = Excel
- Excel.GetLock()
- AW = Excel.ActiveWorkbook
- Range = AW.ActiveWorksheet.Range
- Excel.ReleaseLock()
- End Sub'打开时执行事件
- Public Sub RangeSelection(sender As Object, e As SpreadsheetGear.Windows.Controls.RangeSelectionChangedEventArgs)
- Dim chineseCount, englishCount, numberCount As Integer
- Dim mtext As String = e.RangeSelection.Text
- GetCharacterStats(mtext, chineseCount, englishCount, numberCount)
- messagebox.show("C:" + chineseCount.ToString + " " + "E:" + englishCount.ToString + "N:" + numberCount.ToString)
- End Sub'单元格选择后执行的事件
- Public Sub RangeChanged(sender As Object, e As SpreadsheetGear.Windows.Controls.RangeChangedEventArgs)
- End Sub'单元格编辑完成后执行事件
- Public Sub ButtunClick(sender As Object, e As SpreadsheetGear.Windows.Controls.ShapeActionEventArgs)
- End Sub'按钮/标签点击事件
- Public Sub FollowHyperlink(sender As Object)
- End Sub '暂不支持
- Public Sub GetCharacterStats(inputStr As String, ByRef chineseCount As Integer, ByRef englishCount As Integer, ByRef numberCount As Integer)
- chineseCount = 0
- englishCount = 0
- numberCount = 0
- For Each ch As Char In inputStr
- Dim code As Integer = AscW(ch)
- ' 判断中文字符(常用中文范围)
- If code >= &H4E00 AndAlso code <= &H9FFF Then
- chineseCount += 1
- ' 判断英文字母
- ElseIf (code >= &H41 AndAlso code <= &H5A) OrElse 'a-z
- (code >= &H61 AndAlso code <= &H7A) Then
- englishCount += 1
- ' 判断数字 0-9
- ElseIf code >= &H30 AndAlso code <= &H39 Then ' 0-9
- numberCount += 1
- End If
- Next
- End Sub
- End Class
- ' 注:除事件字眼下可以自定义代码外的所有代码不允许改动,否则编译将有可能失败。
- End Namespace
复制代码
|
|
快表帝国客服01