Excel VBA在特定单元格中添加值
得到了你们的帮助,创建了一个代码,将一些值从一个工作簿复制到另一个工作簿。不过我还有一个问题。 我希望将som静态信息写入J列中与其他复制信息位于同一行的单元格中。 如何将其添加到循环中 我试过:Excel VBA在特定单元格中添加值,excel,vba,loops,Excel,Vba,Loops,得到了你们的帮助,创建了一个代码,将一些值从一个工作簿复制到另一个工作簿。不过我还有一个问题。 我希望将som静态信息写入J列中与其他复制信息位于同一行的单元格中。 如何将其添加到循环中 我试过: wsDest.Cells(DestRow, "J").Value = "HVD" 但它只添加第一行中的值,而不添加其余的值。没有错误,但它似乎不会像中的其他代码那样为每个循环 Option Explicit Public Sub CopyCells() Dim wsSrc As Works
wsDest.Cells(DestRow, "J").Value = "HVD"
但它只添加第一行中的值,而不添加其余的值。没有错误,但它似乎不会像中的其他代码那样为每个循环
Option Explicit
Public Sub CopyCells()
Dim wsSrc As Worksheet 'define source sheet
Set wsSrc = ThisWorkbook.Worksheets("Blad1")
Dim wbDest As Workbook 'define destination workbook
Set wbDest = Workbooks.Open("C:\Temp\Ändringar bef objekt.xlsx")
Dim wsDest As Worksheet 'define destination sheet
Set wsDest = wbDest.Worksheets("Ändringsdata")
Dim DestRow As Long
DestRow = 2 'start in row 2 in destination sheet
wsSrc.Parent.Activate: wsSrc.Activate
Dim Rng As Range
For Each Rng In Selection.Areas
Rng.Resize(, 1).Copy Destination:=wsDest.Cells(DestRow, "A") 'copy A to A
Rng.Resize(, 1).Offset(, 5).Copy Destination:=wsDest.Cells(DestRow, "D") 'copy F to D
**wsDest.Cells(DestRow, "J").Value = "HVD" 'write HVD in column J same row**
DestRow = DestRow + Rng.Rows.Count 'move DestRow to next free row
Next Rng
End Sub
我想你误解了你的
对于每个的工作原理。它不会在每一行或每一个单元格中循环。它循环通过区域
,这是范围
的集合。通常,此集合中只有一个范围
,但如果使用Ctrl键选择单元格,则在区域
中有更多元素
因此,您的代码获取一个这样的“区域”,并将其第一列复制到A列,然后将其第五列复制到D列,并将“HVD”输入单个单元格(单元格(DestRow,“J”)
)。如果要在每行中输入此值,则必须调整此单元格的大小。要做到这一点,您可以使用:
wsDest.Cells(DestRow, "J").Resize(Rng.Rows.Count).Value = "HVD"
另外,请记住,您可以通过将光标放在宏代码中并按F8键来调试代码。这将逐行运行您的代码,所有更改将立即显示在工作表中。有人有任何建议吗?非常感谢您的解释和帮助!