[英]Excel copy cut paste data from 1 sheet to another with a status in updated in sheet 2 new column
[英]Copy data from 1 sheet to another sheet with a status as updated
我是 vba 宏的新手。 我在第一表 A 和 B 列中有一些數據,我想將它們傳輸到表 2 中,狀態在 c 列中更新。 我創建的這個宏是為了將數據從 sheet1 移動到 sheet2,其中 sheet1 在復制它之后從 sheet1 中刪除數據,然后粘貼到 sheet2 中,狀態如下面 c 列中更新是我的代碼......請幫助pppppppppppppp...... .. 早些時候,我使用 for 和 if 語句編碼它正在處理某些值,而對於某些值則不是,例如,FHH 顯示在 c 列中顯示為已更新,但 FXV 的 FXV 列 c 狀態為空白。 現在我再次嘗試選擇它作為一個范圍(i,“B”)進行調試......我想要的是讀取列中的值並顯示列C中更新的狀態......請幫助我也不是能夠定義范圍我的意思是它應該適用於整個 B 列和 C 列,現在限制只到 999 任何人都可以幫助我,下面是我的代碼...
Sub CopyData()
Dim i As Integer
Dim ws As Excel.Worksheet
'Copies and cuts the data from sheet1(TIS) and paste the same in sheet2
Worksheets("SampleFile").Range("A2:A9999").Copy Worksheets("sheet2").Range("A2") 'Copy
Worksheets("SampleFile").Range("A2:A9999").Cut Worksheets("sheet2").Range("A2") 'Cut
Worksheets("SampleFile").Range("B2:B9999").Copy Worksheets("sheet2").Range("B2") 'Copy
Worksheets("SampleFile").Range("B2:B9999").Cut Worksheets("sheet2").Range("B2") 'Cut
'Sheet 2 col C data updated
For i = 2 To 9999
With ws.Cells(i, "B")
Select Case .Value
Case "FXV": .Range("C" & i).Value = "Updated"
Case "FHH": .Range("C" & i).Value = "Updated"
Case "FGA": .Range("C" & i).Value = "Updated"
Case "FST": .Range("C" & i).Value = "Updated"
Case "FFJ": .Range("C" & i).Value = "Updated"
End Select
End With
Next i
' If Worksheets("sheet2").Range("B" & i).Value = "FGA" Then
' Worksheets("sheet2").Range("C" & i).Value = "Updated"
' ElseIf Worksheets("sheet2").Range("B" & i).Value = "FST" Then
' Worksheets("sheet2").Range("C" & i).Value = "Updated"
' ElseIf Worksheets("sheet2").Range("B" & i).Value = "FCT" Then
' Worksheets("sheet2").Range("C" & i).Value = "Updated"
' ElseIf Worksheets("sheet2").Range("B" & i).Value = "FFH" Then
' Worksheets("sheet2").Range("C" & i).Value = "Updated"
' ElseIf Worksheets("sheet2").Range("B" & i).Value = "FFJ" Then
' Worksheets("sheet2").Range("C" & i).Value = "Updated"
' ElseIf Worksheets("sheet2").Range("B" & i).Value = "FXV" Then
'Worksheets("sheet2").Range("C" & i).Value = "Updated"
'End If
End Sub
查看代碼中的注釋
Dim ws As Excel.Worksheet
set ws = Worksheets("sheet2") '<< this needs to be set to a worksheet
'why copy *and* cut ?
With Worksheets("SampleFile")
.Range("A2:A9999").Copy ws.Range("A2") 'Copy
.Range("A2:A9999").Cut ws.Range("A2") 'Cut
.Range("B2:B9999").Copy ws.Range("B2") 'Copy
.Range("B2:B9999").Cut ws.Range("B2") 'Cut
End With
For i = 2 To ws.cells(ws.rows.count, "B").End(xlUp).Row
With ws.Cells(i, "B")
Select Case .Value
'you can use a list of values
Case "FXV","FHH","FGA","FST","FFJ"
.Offset(0, 1).Value = "Updated" 'use Offset()
End Select
End With
Next i
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.