Excel表格的操作求教,行内内容倒序显示

动作开发 · 475 次浏览
Edward_zheng 创建于 17小时8分钟前



用列表操作不会搞,想着用列表的每一项,就是想提取最后一项[-1](网上查来的,就是会报错,用[0]就没问题),然后用追加内容的方式反过来形成一个新列表。就是不行,如下图。

 



所以只能逐行的处理。尴尬的是单元格内的内容也给我反转了,张三变成三张,51变成15。用的是文本处理的反转功能的方式

 

上下反转是实现了,但是还想搞个左右行内调转失败了。

求大佬指教,如果用列表形式怎么反转列表。如果用文本处理反转又怎么实现


涛涛涛 8小时41分钟前 :

建议用vba实现,

Excel表格vba

Sub 左右1()

    Dim sourceRange As Range

    Dim targetRange As Range

    Dim sourceData As Variant

    Dim reversedData() As Variant

    Dim i As Long, j As Long

    Dim rowCount As Long, colCount As Long

    

    Set sourceRange = Selection

    

    sourceData = sourceRange.Value

    

    rowCount = sourceRange.Rows.Count

    colCount = sourceRange.Columns.Count


    ReDim reversedData(1 To rowCount, 1 To colCount)

    

    ' 遍历每一行

    For i = 1 To rowCount

        ' 遍历每一列(从右向左)

        For j = 1 To colCount

            reversedData(i, j) = sourceData(i, colCount - j + 1)

        Next j

    Next i

    

    ' 将调换后的数据写回目标范围

    sourceRange.Value = reversedData

End Sub




Sub 上下1()

    Dim sourceRange As Range

    Dim targetRange As Range

    Dim sourceData As Variant

    Dim reversedData() As Variant

    Dim i As Long, j As Long

    Dim rowCount As Long, colCount As Long

    

    ' 设置源数据范围

    Set sourceRange = Selection

    

    sourceData = sourceRange.Value

    

    ' 获取源数据的行数和列数

    rowCount = sourceRange.Rows.Count

    colCount = sourceRange.Columns.Count

    

    ' 重新定义调换后的数组

    ReDim reversedData(1 To rowCount, 1 To colCount)

    

    ' 上下调换逻辑

    For i = 1 To rowCount

        ' 计算调换后的行号(例如:1 ? 4, 2 ? 3)

        Dim reversedRow As Long

        reversedRow = rowCount - i + 1

        

        For j = 1 To colCount

            reversedData(reversedRow, j) = sourceData(i, j)

        Next j

    Next i

    

    ' 将调换后的数据写回目标范围

    sourceRange.Resize(rowCount, colCount).Value = reversedData

End Sub


涛涛涛 最后更新于 8小时27分钟前
涛涛涛 8小时38分钟前 :

wps表格js宏:

function 左右()

{

Selection.Value2=Selection().map(a=>a.reverse())

}




function 上下()

{

var aa=Application.WorksheetFunction

Selection.Value2=aa.Transpose(aa.Transpose(Selection).map(a=>a.reverse()))

}



都是选择表格区域后,再运行,注意,它们是在原数据上转换的,原数据会跟着变的





涛涛涛 最后更新于 8小时34分钟前
涛涛涛 7小时13分钟前 :

还有就是如果你要列表倒置的话,可以用这个模块,它有倒置的方法


Edward_zheng 回复 涛涛涛 1小时30分钟前 :

谢谢大神回答,无法实现,倒置只能实现上下调转,无法左右调转。

Edward_zheng 回复 涛涛涛 1小时27分钟前 :

另外,因为我另一个动作要自行打开某个xlxs文件,一打开如果有vba宏在的话会自动弹出窗口,导致动作无法继续。所以我不想用vba来实现

涛涛涛 回复 Edward_zheng 1小时5分钟前 :

好的,那你可以把你想要的前后结果数据对比截图说一下,和你不成功的动作链接发一下,来试试看可以按你的思路解决不

Edward_zheng 回复 涛涛涛 59 分钟前 :

https://getquicker.net/Sharedaction?code=333e0b29-7d18-4a7f-dcba-08ddb696b54d

Edward_zheng 回复 涛涛涛 47 分钟前 :

原数据


想要的效果↓



动作效果,不是我想要的↓

涛涛涛 回复 Edward_zheng 38 分钟前 :

好的,晚上有时间看看试试

Edward_zheng 回复 涛涛涛 37 分钟前 :

万分感谢大大

回复内容
暂无回复
回复主贴