在以下方面需要一些帮助:
我有几个具有相同结构的工作表,在每个工作表中我有两列(我们称它们为 X 和 Y),我需要使用它们的单元格值(字母数字组合)复制它们,并将 AF 列的值复制到自己的工作表中对于 X 和 Y。
在“新”工作表上,我想将 X/Y 放在 A 列中,对 A 之后的值进行排序,并为 A 中的每个单元格值附加一个常量超链接。所以 X 或 Y 转到 A,AF 转到 BG。
然后我想让列 F 或新的 G 可点击,以便将我带到相应工作表中的行。X 和 Y 并不总是恰好在 X 或 Y 列中,但我认为这可以通过“名称搜索”来解决。
当我执行我的代码时,例如 worksheet3 将覆盖 worksheet1 的值,并且我的超链接结构也是错误的。排序被忽略了,因为它正在工作。
Function CopyAndSort(ByRef mySheet As Worksheet)
' If mySheet.Name <> "Sheet1" Then
' Exit Function
' End If
mySheet.Activate
Set sheetCS = Sheets("CopyAndSort Sheet")
sheetCS.Range("A:A").Value = ""
lastRowCS = Range("X:X").Cells.Find("*", , , , , xlPrevious).Row
rowNumber = 1
For rowCopy = 5 To lastRowFO
sheetCopy = Range("BE" & rowCopy)
If Trim(sheetCopy) <> "" Then
sheetCopy = Replace(sheetCopy, """", "")
If InStr(1, sheetCopy, ",", vbTextCompare) <> 0 Then
sheetCopyArray = Split(sheetCopy, ",")
Else
sheetCopyArray = Array(sheetCopy)
End If
For Each copy In sheetCopyArray
rowNumber = rowNumber + 1
copy_Value = copy
' test for url
' sheetCS.Cells(rowNumber, 1).Formula = "=HYPERLINK(""ConstURL & copyValue"")"
sheetCS.Cells(rowNumber, 1) = copy_Value
copy_Value = Cells(rowCopy, 1)
sheetCS.Cells(rowNumber, 2) = copy_Value
copy_Value = Cells(rowCopy, 2)
sheetCS.Cells(rowNumber, 3) = copy_Value
copy_Value = Cells(rowCopy, 3)
sheetCS.Cells(rowNumber, 4) = copy_Value
copy_Value = Cells(rowCopy, 4)
sheetCS.Cells(rowNumber, 5) = copy_Value
copy_Value = Cells(rowCopy, 5)
sheetCS.Cells(rowNumber, 6) = copy_Value
Next
End If
Next
那么我怎样才能设法不覆盖这些值并附加正确的超链接语法,以及使列 G 可点击?我可以对 X 和 Y 使用一个函数吗?一些代码示例会对我有很大帮助。谢谢你。
更新:
我忘了提到 X 和 Y 将永远彼此相邻。
例子:
表 1:
|ColA|ColB|ColC|ColD|ColF|....|ColX|ColY|
Sheet2:这里“ColX”在 ColQ 中,ColY 在 ColR 中
|ColA|ColB|ColC|ColD|ColF|....|ColXinColQ|ColYinColR|
CopySheet_of_X:现在复制 Sheet1 的 ColX 和 ColA-ColF,并对其中 X 在 ColQ 中的 Sheet2 执行相同操作
两张纸的输出: |ColX|ColA|ColB|ColC|ColD|ColF|
CopySheet_of_Y:现在复制 Sheet1 的 ColY 和 ColA-ColF,并对其中 Y 在 ColR 中的 Sheet2 执行相同操作
两张纸的输出: |ColY|ColA|ColB|ColC|ColD|ColF|
超链接:所以现在 ColX 和 ColY 的值应该与前面的超链接连接:如果 ColX 中的单元格具有“someValue1”的值,那么它应该变成 myurl://sometext=someValue1
而且我不知道单击 ColF 时跳回该行的正确方法。