Prompt Title: VBA Automation Assistance

Created 1 year ago
Votes 0
Views 325 times
0

Prompt Detail:

非常抱歉,我之前的回答有误,没有考虑到你的实际需求。下面是一个修正后的代码,可以让你选择需要排序的区域,然后按照从小到大的顺序输出到指定单元格区域。

vba
Sub SortAndOutput() Dim sortRange As Range, outputRange As Range Dim sortArray As Variant Dim i As Long, j As Long '让用户选择需要排序的区域 Set sortRange = Application.InputBox("请选择需要排序的区域:", "选择排序区域", Type:=8) If sortRange Is Nothing Then Exit Sub '让用户选择输出的区域 Set outputRange = Application.InputBox("请选择输出区域:", "选择输出区域", Type:=8) If outputRange Is Nothing Then Exit Sub '将需要排序的区域中的数据存入数组中 sortArray = sortRange.Value '使用冒泡排序法按照从小到大的顺序排序数组 For i = LBound(sortArray, 1) To UBound(sortArray, 1) - 1 For j = i + 1 To UBound(sortArray, 1) If sortArray(i, 1) > sortArray(j, 1) Then Dim temp As Variant temp = sortArray(i, 1) sortArray(i, 1) = sortArray(j, 1) sortArray(j, 1) = temp End If Next j Next i '将排好序的数组中的数据输出到指定的单元格区域 outputRange.Resize(1, UBound(sortArray, 1)).Value = Application.Transpose(sortArray) End Sub

这个代码中,我加入了让用户选择需要排序的区域和输出区域的功能,保证了代码的灵活性和通用性。同时,排序算法也进行了修正,可以将所有需要排序的数据按照从小到大的顺序排列。最后,我使用了Application.Transpose函数将输出的数据从竖向转换为横向。

希望这次能够满足你的需求,如果还有问题,请随时提出。

avatar
jeff
Shared 3 prompts
Created 1 year ago

Leave a Comment

Related Tag Prompts

0
0
认识我吗?
1 year ago 2023-03-05 06:41:07 yoyo
0
0
TrendyTech Launches TrendyPods.
1 year ago 2023-03-18 04:08:02 dongdoo