确定行值或选择一行中的第一个空白单元格

时间:2018-07-09 13:38:29

标签: excel vba ms-word word-vba

我正在将数据从excel导出到word表(11行7列)。我已经写了一个宏来为我做这个,但是我遇到了一个关键问题。我输入的数据来自3个不同的工作簿,每个工作簿都进入表中的不同列。尽管此数据来自3个不同的工作簿,但将它们组合在一起。在3个不同的温度下测试这些单元,并从每个温度获得数据。进入单词表的相关列。这是我当前的代码

Sub CopyAndPaste()
Dim myfile, wdApp As New Word.Application, wDoc As Word.Document
'select truck report file
ChDrive "E:\"
ChDir "E:\WG\TVAL\"
myfile = Application.GetOpenFilename(, , "Browse for Document")
Dim i As Integer
'searches for row with "avg" then selects column E(avg of temperature mean) of that row.
i = Application.Match("Avg", Sheet1.Range("A1:A20"), 0)

'makes the file appear
wdApp.Visible = True
Set wDoc = wdApp.Documents.Open(myfile)

With wDoc
Dim oRow As Row
For Each oRow In wDoc.Tables(8).Rows
If Len(oRow.Range) = 16 Then
With oRow
  .Cells(1).Range.Text = "Performance Review"
  .Cells(2).Range.Text = Range("e" & i)
  .Cells(3).Range.Text = ""
  .Cells(4).Range.Text = ""
  .Cells(5).Range.Text = ""
End With
Exit For
End If
Next 
End With
wDoc.Save
End Sub
  1. 打开文件路径,然后允许用户选择所需的文件
  2. 找到我要复制/粘贴或键入到单词表中的值
  3. 换句话说,在表中搜索第一个空白行,然后在第1列中键入“性能审查”,然后在表的相应列中键入我想要的值。 (每个温度对应一列) 这对于我添加的第一个值非常有用,但是当我要添加下两个值时,如果我希望它与输入的第一个值位于同一行,则将其键入新行。我知道我需要改变

    如果Len(oRow.Range)= 16然后

但是我不知道将其更改为什么值,以便它将数据输入到已经具有“性能查看”的Cells(1)和具有值范围的Cells(2)以及第三临时单元格的行中(3)也会有一个值。 cells(2)的值将类似于22.56。 Cells(3)就像5.21 对于每个温度,我都计划运行一个不同的宏,但是我希望它们类似于:

Dim oRow As Row
For Each oRow In wDoc.Tables(8).Rows
If Len(oRow.Range) = 16 Then
With oRow
  .Cells(1).Range.Text = "Performance Review"
  .Cells(2).Range.Text = Range("e" & i)
  .Cells(3).Range.Text = ""
  .Cells(4).Range.Text = ""
  .Cells(5).Range.Text = ""
End With

所以我想要第一个宏来填充单元格(1)和单元格(2),这已经完成了。第二个宏仅需要cell(3)即可将数据输入其中。对于第三个宏,我需要cell(4)为其输入值。 本质上,我需要解决的是一旦输入先前的值后如何确定行的值。 希望这是有道理的,我已经做了一个月的vba,所以我还是很新鲜。如果有人需要其他信息或示例屏幕截图,请告诉我! 如果有人看到我在这里要做什么,并且有更好的方法来解决我的问题,请分享! 我在想也许我可以在表中的第2个和第3个宏中搜索第一个空白单元格,但是我却找不到它!

P.S。对于第3个宏,想添加一行代码,将行的背景颜色更改为白色

0 个答案:

没有答案