gpt4 book ai didi

vba - Excel将数据从行移动到列

转载 作者:行者123 更新时间:2023-12-04 21:37:34 32 4
gpt4 key购买 nike

抱歉,我觉得这可能是 super 基本的,但我正在尝试使用 Excel 和 VBA 将数据从每行的多个单元格以特定顺序移动到空列中。一些单元格可能没有数据,所以我也必须检查一下,并用 Value <> Empty 的内容跳过空的单元格。 .

基本上,我要做的是获取一个看起来像这样的表(A 列为空):

B1 C1 D1 E1
B2 C2 D2 [E2empty]
B3 C3 D3 E3

并在 A 列中这样设置:
B1
C1
D1
E1
B2
C2
D2
B3
C3
D3
E3

它将一次一行地输入到新列中。

我想我想弄清楚如何在代码中说出以下内容
In Row 1, check if cell B is empty. If not, move Value to column A, first avaible cell, 
next cell in row 1, (repeat).
Next Row( do the same as row 1.)

所以我在考虑使用 For i = 1 To rwcnt其中 rwcnt 由 CountA(Range("B:B")) 定义
按顺序执行行,然后在单元格的 for 语句中执行类似的操作(也许 j = B To E? )。

所以我的总体目标是扫描我的范围 (MyRange = ActiveSheet.Range("B1:E" & rwcnt))并按照顶部描述的顺序将所有内容移至 A 列,但我不知道如何将数据按顺序移至 A 列。任何关于如何实现这一点的建议都会非常有帮助。

最佳答案

循环遍历所有使用的行,循环从该行中的 B 开始的列。检查单元格是否为空。将其写入下一个单元格。

在您的 VBA IDE 中,转到工具菜单并选择引用。选择“Microsoft 脚本运行时”

Dim lRow As Long
Dim lRowWrite as long
Dim lCol As Long
Dim ws As Excel.Worksheet
Dim ts As TextStream
Dim fs As FileSystemObject

'Create the text file to write to
Set fs = New FileSystemObject
Set ts = fs.CreateTextFile("C:\Temp\test.txt", True, False)

Application.ScreenUpdating = False
Set ws = Application.ActiveSheet
lRowWrite = 1
lRow = 1

'Loop through all the rows.
Do While lRow <=ws.UsedRange.Rows.count
'Loop through all the columns
lCol = 2
Do While lCol <=ws.UsedRange.Columns.count
'Check if it is empty
If not isempty(ws.Cells(lRow, lCol)) Then
'Not empty so write it to the text file
ts.WriteLine ws.Cells(lRow, lCol)
End If
lCol = lCol + 1
Loop

lRow = lRow + 1
ws.Range("A" & lRow).Activate
Loop

Application.ScreenUpdating = True

ts.Close: Set ts = Nothing
Set fs = Nothing

关于vba - Excel将数据从行移动到列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31682638/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com