【发布时间】:2015-06-10 18:52:41
【问题描述】:
我想我可以通过对我们为其他东西编写的类似代码的分析来解决这个问题,但代码不是我的强项。
事实证明,在没有指导的情况下潜入 VBA 对我来说太艰巨了,无法继续。
如果我使用了错误的语言,请原谅我的术语,我很高兴学习并得到纠正。
对于知道自己在做什么的人来说,这应该不难,我根本不知道。
我正在尝试创建一个启用宏的工作簿,该工作簿执行以下操作:
从与宏位于同一目录中的名为“Data”的文件夹中打开“Data.csv”。我们将此工作簿称为 A - wbA。
在 wbA 上的列 C 之后插入一列,标题为“组图像名称”。 D 列是我们希望数据结束的地方。
从位于宏所在目录的名为“Groups”的文件夹中打开“Groups.csv”。我们将此工作簿称为 B - wkB。
(下一部分需要是一个循环,从 wbA 上的 C1 开始,沿着列向下直到电子表格结束)
- 从 wbA 的 C 列中的选定单元格中复制值
- 在 wbB 的 C 列中搜索复制的值。找到后,将所选内容移至 A 列中的相应单元格。(如果是 C2,则为 A2)
- 将列 A 值的内容从 wbB 复制到 wbA 上与 wbA 上的原始起点相对应的 D 列单元格。
基本上用简单的语言:在 wbB 的 C 列上搜索来自 wbA 的 C 列内容。找到后,移动到 wbB 上相同单元格 # 的 A 列,复制内容,然后粘贴到 wbA 上与 C 列起点的单元格 # 对应的 wbA 上 D 列的单元格 #。
我希望这很清楚;如有必要,请随时询问更多详细信息。提前感谢任何人的帮助!
这是我目前正在使用的糟糕代码:
Sub OpenDataAddGroupImageTitleColumn()
ChDir "C:\[RealCodeHasCorrectFilepath..]\Desktop\TEST"
Workbooks.Open Filename:="C:\[RealCodeHasCorrectFilepath..]\Desktop\TEST\DATA.csv"
Columns("D:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Cells.Select
Cells.EntireColumn.AutoFit
Range("D1").Select
ActiveCell.FormulaR1C1 = "Group Image Title"
Range("C2").Select
'Variables for storing Row, Column Location, and Value here
Dim GROUPNAME As String
Dim RowLocationX As Long
Dim ColumnLocationZ As Integer
GROUPNAME = ActiveCell.Value
RowLocationX = ActiveCell.Row
ColumnLocationZ = ActiveCell.Column
Workbooks.Open Filename:="C:\[RealCodeHasCorrectFilepath..]\Desktop\GROUPS.csv"
Columns("C:C").Select
Selection.Find(What:="GROUPNAME", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
End Sub
经过大量谷歌搜索后我无法弄清楚的当前障碍是:是否可以使用查找/替换功能搜索我的变量 GROUPNAME?或者我应该使用涉及复制到剪贴板的方法采取不同的方法?
【问题讨论】:
-
请提供您尝试过的代码以及您遇到的确切问题。这不是让其他人为您编写代码的地方,但是有很多人很乐意帮助您解决编码时遇到的问题。
-
我添加了上面的代码;不要笑。我毫不怀疑它包含冗余和超过必要的部分。此时我的主要问题如下:如何引用/保存先前选择的单元格值以供稍后在代码中使用?见上面的注释。此宏是否可以将剪贴板内容粘贴到“查找/替换”搜索中?我将如何/在哪里启用我描述的循环功能?
-
将问题编辑到问题中。他们没有出现在评论中。