Excel VBA代码问题!高手请进!!!

For i = 3 To .Cells(65536, 3).End(xlUp).Row

If .Cells(i, 4) <> 1 Then
brr = Split(.Cells(i, 3), ",")
ReDim arr(UBound(brr))
For j = 0 To UBound(brr())
arr(j) = Val(brr(j))
Next j
ReDim crr(1 To UBound(brr()) - LBound(arr()) + 1)
For j = 1 To UBound(crr())
crr(j) = Application.WorksheetFunction.Small(arr(), j)
Next j
.Cells(i, 3) = crr(1)
For j = 2 To UBound(crr())
.Cells(i, 3) = .Cells(i, 3) & "," & crr(j)
Next j
End If
Next i
这只是一部分代码,但是一运行到这段代码时,当字母与数字多个组合时为0了
纯数字就没事,单个组合也没事
0,0
0,0
0,0
C10
0,0
R8
0,0本来应该是R1,R2之类的东东!
请高手指点,谢谢!!!

如有兴趣加QQ:107172400!有文档详聊!

第1个回答  2012-10-07
在这里,arr(j) = Val(brr(j))你原有的非数字的字符就消失了,只会有数字,VAL会把非数字的字符清除调,只保留数字,没数字的话,arr(j)=0了追问

大侠那怎么改善了?

追答

你是想把按逗号分隔的字符串排序?
你贴一段原始字符串和期望的结果出来看看呢

追问

你真是个高手啊!好的

第2个回答  2012-10-09
加Q了,我来帮你吧!!!本回答被提问者采纳

excel表格VBA代码高手请进,帮我优化代码
Private Sub Worksheet_Change(ByVal Target As Range)If Target.Row = 1 Or Target.Cells.Count > 1 Then Exit Sub Application.EnableEvents = False Select Case Target.Column Case Is = 1, 4 If Target.Value > 0 Then With Target.Offset(0, 1).Value = Now .NumberFormatLocal = "yyyy...

EXCEL高手请进,需要VBA编程,筛选重复数据并显示统计数量以及显示下一行...
假设两个表都是从A列开始的,用下面代码可以实现 Sub cz()Sheets("sheet2").Select Range("a3:a100").ClearContents Set sh1 = Sheets("sheet1")x = sh1.[a65536].End(xlUp).Row n = 3 For i = 2 To x With sh1 If .Cells(i, 1) = [b1] Then Cells(n, 1) = .Cells(i,...

EXCEL高手请进,求VBA代码,统计关于单元格间隔的问题~
鼠标右键Sheet1的标签,选【查看代码】。在代码窗口粘贴下面的代码:Sub ouyangff()n = [a65536].End(3).Row For i = 0 To 4 For j = 1 To n If Cells(j, 1) = i Then k = j Next Cells(i + 1, 3) = n - k Next End Sub 按 Alt + F11 回到 Excel 这时你可以按Alt +...

excel单元格内数字连线,VAB代码如何编写,高手请进。
Sub 宏1() Dim x1!, y1!, x2!, y2! Dim i%, ii%, rng1 As Range, rng2 As Range, r%, c% x1 = 154.5 y1 = 21 x2 = 262.5 y2 = 48.75 Dim shp As Object For Each shp In ActiveSheet.Shapes shp.Delete Next ActiveSheet.Cells.Inte...

关于excel表格的一些问题,高手请进
用vba实现。代码如下:Sub test()Dim i As Integer Dim j As Integer Dim str As String Dim c1 As Integer Dim c2 As Integer Dim p As Integer str = "优"For i = 2 To EndRow(2)c1 = 0 c2 = 0 For j = 2 To 13 c1 = c1 + 1 If ActiveSheet.Cells(i, j) = str Then...

EXCEL问题,高手请进!
Name:="abcd", RefersTo:=Cells(Target.Row, 1).Resize(1, 10)End Sub 注:代码中thisworkbook...resize(1,10)为同一行,resize(1,10)中10为列数,可改成任意[1,255]之间的数值 ②在工作表中,选中所有数据,格式>条件格式,公式输入=row(abcd)=row(),然后点格式,图案里选一颜色,确定即可....

EXCEL2007 VBA代码高手请进,我的一段代码,不自动计算,怎么办?
再增加一个事件代码即可,目的是有公式计算时运行代码,将所以D列有公式引用的都运行一次你的代码,增加的代码如下(详见附件):Private Sub Worksheet_Calculate()Call Worksheet_Change(Columns("D").SpecialCells(xlCellTypeFormulas))End Sub

EXCEL VBA高手请进,求自动计算公式~~
下面以H6的值“高度2*长度3”的结果填入I6为例,代码如下:Sub aa()Dim str As Stringstr = [H6]For i = Len(str) To 1 Step -1 If Asc(Mid(str, i, 1)) > 100 Or Asc(Mid(str, i, 1)) < 0 Then str = Application.WorksheetFunction.Replace(str, i, 1, "") En...

excel表格问题请教(高手请进!)
假设是在B1单元格中输入数字,用下面代码:Private Sub Worksheet_Change(ByVal Target As Range)If Target.Row <> 1 Or Target.Column <> 2 Then Exit Sub Range("A" & Range("A65536").End(xlUp).Row + 1) = Target End Sub

excel 宏高手请进!!求助如下图:
i, j).Value TempSum = TempSum + 1 NextNextEnd Sub这样就能逐行填入。另外,最好这个明细的记录表放在另外一个工作表中,比如放在sheet2 ,这样只要对上述代码中的r复制指定为sheet2.[B65536].end(3).row+1,同样后面的代码中也在前面分别增加sheet2.和sheet1.即可。

相似回答