VBA错误或错误?表2中的表2数据显示在表1中

时间:2016-11-30 01:26:59

标签: excel vba excel-vba macros excel-2010

我有一个Excel电子表格,在过去几天开始表现得很奇怪,而且我不确定它是不是我的VBA代码或错误。在运行宏以将工作表1中的新数据行添加到工作表2中的表格后,可以看到工作表2到工作表1 - 它就像单元格一样。没有填写'但实际上是通过表2显示而不是白色。

enter image description here

enter image description here

enter image description here

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中出现这种奇怪的视觉错误

2 个答案:

答案 0 :(得分:1)

还有其他原因导致先前选择的图纸“渗色”到当前可见的图纸。

就我而言,这有助于确保执行宏后最后可见的工作表是使用Sheets("Name").ActivateSheet.Activate而不是仅被选择的宏中最后激活的工作表。

答案 1 :(得分:0)

当我使用与最初出现问题的计算机不同的更快的计算机时,问题得以解决。

看起来YowE3k是正确的,它特定于我的电脑