移调列使用VBA Excel表格
将列转置为Excel工作表
场景
假设您有一个Excel工作簿。它有3张纸。一张纸包含5列。每列都有不同的城市数据。每个工作表包含相似的5列,其中包含相同城市的不同数据。
挑战:
我们需要为每个唯一列创建一个包含不同工作表的文件。每张表应包含其各自列的数据。最后,我们将有5张纸,每张3列。在某种程度上,它会将列转换为工作表。
逻辑:
首先,我们需要创建一个工作簿,其中每列包含不同的工作表。我们可以通过查看原始文件的第一页标题来做到这一点。
接下来,我们需要遍历原始工作表的每个工作表,以将每一列复制到新工作簿的相应工作表中。
VBA代码将列转置为工作表。
让我们看一下先转换工作表的VBA代码。我在下面解释。
Sub TransposeColsToSheets() 'varibles Dim wb As Workbook Dim twb As Workbook Dim lstRw As Integer Dim lstCl As Integer Dim cols As Range With Application .DisplayAlerts = False .ScreenUpdating = False End With 'creating new file Set wb = Workbooks.Add 'saving the file. Replace the path with your destination. wb.SaveAs "C:\Users\Manish Singh\Desktop\Excel Tip\result.xlsx" Set twb = ThisWorkbook twb.Sheets(1).Activate lstCl = Cells(1, Columns.Count).End(xlToLeft).Column 'identfying headers for city names Set cols = Range(Cells(1, 1), Cells(1, lstCl)) 'loop to create sheets For x = 1 To cols.Count wb.Sheets.Add.Name = "page" & x Next 'loop to transpose columns to sheets For Each sh In twb.Sheets For x = 1 To cols.Count sh.Activate lstRw = Cells(Rows.Count, 1).End(xlUp).Row Range(Cells(1, x), Cells(lstRw, x)).Copy wb.Sheets("page" & x).Activate lstCl = Cells(1, Columns.Count).End(xlToLeft).Column + 1 Range(Cells(1, lstCl), Cells(1, lstCl)).PasteSpecial xlPasteAll Next x Next sh 'saving and closing the result workbook wb.Save wb.Close With Application .DisplayAlerts = True .ScreenUpdating = True End With End Sub
您可以下载belove文件以立即使用它,也可以根据需要复制代码以对其进行自定义。
运行代码后,它将立即创建一个Excel文件,该文件将有5张纸,每张纸包含3列相同城市的数据。
`链接:/wp-content-uploads-2019-12-Transpose-Column-To-sheets.xls [
Transpose Column To Sheets]
如何运作?
在上面的示例代码中,我们假设文件从每张工作表的第一个单元格开始,并且每张工作表包含相同数量的列。
在代码的前几行中,我们已经声明了过程中所需的变量。我们将列标题保存在名为cols的变量中,还创建了一个名为result.xlsx *的.xlsx文件。
接下来,我们使用循环在header.cols中在result.xlsx中创建相同数量的工作表。
'loop to create sheets For x = 1 To cols.Count wb.Sheets.Add.Name = "page" & x Next
接下来,我们使用了嵌套循环。第一个循环是迭代原始文件中的工作表。下一个循环,用于复制每列并将其粘贴到results.xlsx文件中的每张工作表中。
最后,我们将保存工作簿result.xlsx并关闭它。完成了。
好的,这就是您如何使用VBA将每一列复制到excel中的新工作表的方法。这是我们的用户Mahmoodin的评论部分提出的。
我认为该当之无愧地写一篇文章,以便我们所有人都可以使用。这边有我希望这是可以解释的。如果您仍然有任何疑问或其他疑问,请在下面的评论部分中提问。
相关文章:
下载工作文件。
在Microsoft Excel 2016中使用VBA关闭警告消息 ||要关闭中断正在运行的VBA代码的警告消息,我们使用Application类。
在Microsoft Excel 2016中使用VBA添加和保存新工作簿] |要使用VBA添加和保存工作簿,我们使用Workbooks类。 Workbooks.Add可以轻松添加新工作簿,但是…
热门文章:
50 Excel快捷方式以提高生产率更快地完成任务。这50个快捷键将使您在Excel上的工作速度更快。
Excel中的VLOOKUP函数在Excel 2016中为COUNTIF使用此惊人的功能对条件进行计数。
您无需过滤数据即可计算特定值。 Countif功能对于准备仪表板至关重要。
如何在Excel中使用SUMIF函数这是仪表板的另一个重要功能。这可以帮助您汇总特定条件下的值。