第一次需要帮助的程序员 [英] First time programmer needing help
问题描述
以下是我正在寻找的内容:为以下情况编写程序的简单建议
Here's what I'm looking for: simple advice as to write a program for the following situation
我有一个工作表1列AE
I have a worksheet1 columns A-E
我想将第1行AE工作表1复制到第1行AE工作表2
I want to copy row 1 columns A-E worksheet1 to row 1 columns A-E worksheet2
然后我想比较第2行A工作表1到第1行A工作表2和
如果匹配
then I want to compare row 2 column A worksheet1 to row 1 column A worksheet2 and if matched
然后将第2行E工作表1放在第1行E工作表2 IF
then put row 2 column E worksheet1 in place of row 1 column E worksheet2 IF
行 2 coumn E工作表1大于第1行coulumn E工作表2否则
row 2 coumn E Worksheet1 is greater than row 1 coulumn E worksheet2 otherwise
复制row2 coulmns AE工作表1到第2行AE工作表2
copy row2 coulmns A-E worksheet1 to row2 columns A-E worksheet2
然后继续为工作表1的行结束
then continue to end of rows for worksheet1
视觉上:
1 A       B     C      d     E
1 A B C D E
牛奶      2      3     4     5
milk 2 3 4 5
鸡蛋     12    13    14    15
Eggs 12 13 14 15
面包    22    33    44    55
Bread 22 33 44 55
牛奶          2     3     4     60
Milk 2 3 4 60
因此,最终看起来像:
1 A       B     C      d     E
1 A B C D E
牛奶      2      3     4 60
milk 2 3 4 60
鸡蛋     12    13    14    15
Eggs 12 13 14 15
面包    22    33    44    55
Bread 22 33 44 55
推荐答案
Sub Macro1()
Dim myR As Long
Dim myC As Range
With Sheets("Sheet1")
myR = .Cells(Rows.Count, 1).End(xlUp).Row
.Range("F1:F" & myR).FormulaR1C1 = "=SUM(RC[-4]:RC[-1])"
.Range("G1").FormulaArray = "=RC[-1]=MAX(IF(R1C1:R" & myR & "C1=RC[-6],R1C6:R" & myR & "C6))"
.Range("G1").AutoFill Destination:=.Range("G1:G" & myR)
For Each myC In .Range("G1:G" & myR)
If myC.Value Then myC.Offset(0, -6).Resize(1, 5).Copy _
Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp)(2)
Next myC
.Range("F1:G" & myR).Clear
End With
End Sub
试试看。我假设你的工作表名称是Sheet1和Sheet2。
Try that. I have assumed that your sheet names are Sheet1 and Sheet2.
这篇关于第一次需要帮助的程序员的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!