我的Excel包含三列数据
我的Excel包含三列数据。我想通过VB实现排序功能
Sub Sort1()
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("A2:A" & Range("A1").CurrentRegion.Rows.Count) _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveSheet.Sort.SortFields.Add Key:=Range("B2:B" & Range("A1").CurrentRegion.Rows.Count) _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveSheet.Sort
.SetRange Range("A1:C" & Range("A1").CurrentRegion.Rows.Count)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
VB数组排序问题
如果在excel表格的A列中依次输入0-11共12个数字,在B列中对应地输入12个随机数,然后按B列排一下序,A列中的数字就变成随机排列的了
在这里使用同样的思路,只不过把二维表格换成二维数组即可,代码如下:
Dim Matrix(0 To 11, 0 To 1) As Single
Dim i As Integer, j As Integer
Dim sngTemp As Single
Randomize
'初始化数组,使每“行”第一个数字为行号,第二个数字为随机大小的数字
For i = 0 To 11
Matrix(i, 0) = i
Matrix(i, 1) = Rnd(100)
Next
Text1.Text = ""
'由于数组较小,这里使用冒泡排序,依次筛选出第N大的数字并显示到Text1中
For i = 0 To 11
For j = i + 1 To 11
If Matrix(j, 1) > Matrix(i, 1) Then
sngTemp = Matrix(i, 1)
Matrix(i, 1) = Matrix(j, 1)
Matrix(j, 1) = sngTemp
sngTemp = Matrix(i, 0)
Matrix(i, 0) = Matrix(j, 0)
Matrix(j, 0) = sngTemp
End If
Next
Text1.Text = Text1.Text & vbCrLf & Matrix(i, 0)
Next
EXCEL VBA宏语言排序问题附有图片
问题1
Private Sub CommandButton1_Click()
Dim i, j As Long
Sheets("sheet2").Cells.ClearContents
Sheets("sheet1").Cells.Copy
Sheets("sheet2").Select
Sheets("sheet2").Range("A1").Select
ActiveSheet.Paste
i = 3
Do While Sheets("sheet2").Range("A" & i).Value ""
For j = 2 To i - 1
If Sheets("sheet2").Range("A" & i).Value > Sheets("sheet2").Range("A" & j).Value Then
Else
Sheets("sheet2").Rows(i & ":" & i).Cut
Sheets("sheet2").Rows(j & ":" & j).Insert Shift:=xlDown
Exit For
End If
Next j
i = i + 1
Loop
End Sub
问题2
Private Sub CommandButton1_Click()
Dim i, j As Long
Sheets("sheet2").Cells.ClearContents
Sheets("sheet1").Cells.Copy
Sheets("sheet2").Select
Sheets("sheet2").Range("A1").Select
ActiveSheet.Paste
i = 3
Do While Sheets("sheet2").Range("A" & i).Value ""
For j = 2 To i - 1
If Sheets("sheet2").Range("C" & i).Value & Sheets("sheet2").Range("D" & i).Value > Sheets("sheet2").Range("C" & j).Value & Sheets("sheet2").Range("D" & j).Value Then
Else
Sheets("sheet2").Rows(i & ":" & i).Cut
Sheets("sheet2").Rows(j & ":" & j).Insert Shift:=xlDown
Exit For
End If
Next j
i = i + 1
Loop
End Sub
以上是我的Excel包含三列数据的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

快速链接 为什么应该在 Excel 中命名表格 如何在 Excel 中命名表格 Excel 表格命名规则和技巧 默认情况下,Excel 中的表格命名为 Table1、Table2、Table3,依此类推。但是,您不必坚持使用这些标签。事实上,如果您不这样做会更好!在本快速指南中,我将解释为什么您应该始终重命名 Excel 中的表格,并向您展示如何操作。 为什么应该在 Excel 中命名表格 虽然养成在 Excel 中命名表格的习惯可能需要一些时间(如果您通常不这样做的话),但以下原因说明了今

本教程向您展示了如何在保留所有表功能的同时快速应用,修改和删除Excel表样式。 想让您的Excel桌子看起来完全想要吗?继续阅读! 创建Excel表之后,第一步是通常

Excel中使用公式型条件格式处理溢出数组 直接对Excel中溢出数组进行格式化可能会导致问题,尤其当数据形状或大小发生变化时。基于公式的条件格式规则允许在数据参数更改时自动调整格式。在列引用前添加美元符号 ($) 可以将规则应用于数据中的所有行。 在Excel中,您可以对单元格的值或背景应用直接格式化,以使电子表格更易于阅读。但是,当Excel公式返回一组值(称为溢出数组)时,如果数据的尺寸或形状发生变化,则应用直接格式化将导致问题。 假设您有此电子表格,其中包含PIVOTBY公式的溢出结果,

本教程解释了如何在公式示例中使用excel中的匹配函数。它还显示了如何通过使用Vlookup和匹配的动态公式来改善查找公式。 在Microsoft Excel中,有许多不同的查找/参考

该教程显示了如何比较Excel中的文本字符串,以了解不敏感和确切的匹配。您将学习许多公式,以通过其值,字符串长度或特定字符的出现数量来比较两个单元格

提升Excel表格的可访问性:实用指南 创建Microsoft Excel工作簿时,务必采取必要的步骤,确保每个人都能访问它,尤其是在您计划与他人共享工作簿的情况下。本指南将分享一些实用技巧,帮助您实现这一目标。 使用描述性工作表名称 提高Excel工作簿可访问性的一种方法是更改工作表的名称。默认情况下,Excel工作表命名为Sheet1、Sheet2、Sheet3等等,这种非描述性的编号系统在您点击“ ”添加新工作表时会继续下去。 更改工作表名称使其更准确地描述工作表内容具有多重好处: 提
