我有一个Excel电子表格,在过去几天开始表现得很奇怪,而且我不确定它是不是我的VBA代码或错误。在运行宏以将工作表1中的新数据行添加到工作表2中的表格后,可以看到工作表2到工作表1 - 它就像单元格一样。没有填写'但实际上是通过表2显示而不是白色。
Here's the spreadsheet, stored in Google Drive,请随时下载并查看代码等。
我的VBA代码是否导致此问题或是否为错误,我该如何解决?
编辑:这是代码。按下按钮时调用第一个子,并在结尾处调用sortTable
Sub addRows()
Dim rowLast As Long
rowLast = Worksheets("Inventory").Cells(Rows.Count, "C").End(xlUp).row
Dim relevantRow As Integer
relevantRow = rowLast + 1
Dim numRepeats As Integer
Dim numRepeatsRange As Range
Set numRepeatsRange = Range("newInv")
numRepeats = numRepeatsRange.Count
Dim relevantColumn As Integer
Dim relevantColumnRange As String
Dim copyFromCell As Range
Dim copyToCell As Range
Dim counter As Integer
For counter = 1 To numRepeats
relevantColumn = Worksheets("Index Lookup").Cells(counter + 1, 2).Value
Set copyFromCell = Worksheets("Input").Cells(16, counter + 1)
Set copyToCell = Worksheets("Inventory").Cells(relevantRow, relevantColumn)
copyToCell.Value = copyFromCell.Value
Next counter
Call sortTable
Worksheets("Input").Range("newInv").ClearContents
Worksheets("Input").Range("C16").Select
End Sub
Sub sortTable()
ActiveWorkbook.Worksheets("Inventory").ListObjects("Table14").Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("Inventory").ListObjects("Table14").Sort.SortFields. _
Add Key:=Range("C15"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Inventory").ListObjects("Table14").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
EDIT2:有问题的细胞在采取任何直接影响它们的动作时重置为正常 - 更改工作表,选择它们(甚至拖动选择而不是实际选择它们),编辑其中一个受影响的单元格。视觉干扰发生在我的按钮前面,但如果我点击该区域然后他们的宏运行 - 这只是一个视觉问题。
我找到了一个临时解决方法:在sub addRows下面的代码下面,我选择单元格A1:Z500,然后选择C16(选择全部清除视觉错误,但看起来很糟糕,所以我重置选择到C16)。随机信息仍然在屏幕上闪烁,但很快就消失了。 我还是宁愿不必这样做 - 任何想法?
EDIT3:我进一步调查并取消对sortTable的调用,删除了问题。 sortTable中的某些东西(仅作用于工作表2)导致工作表1中出现这种奇怪的视觉错误
答案 0 :(得分:1)
还有其他原因导致先前选择的图纸“渗色”到当前可见的图纸。
就我而言,这有助于确保执行宏后最后可见的工作表是使用Sheets("Name").Activate
或Sheet.Activate
而不是仅被选择的宏中最后激活的工作表。
答案 1 :(得分:0)
当我使用与最初出现问题的计算机不同的更快的计算机时,问题得以解决。
看起来YowE3k是正确的,它特定于我的电脑