2016-11-30 50 views
0

我有一个Excel电子表格,在过去的几天中开始出现奇怪的行为,我不确定它是否是我的VBA代码或错误。在运行一个宏以将表1中的一行新数据添加到表2中的一个表格后,表2可以通过'表'1看到 - 这就像单元格'没有填充'一样,但实际显示到表2而不是白色。VBA错误或错误?工作表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中出现奇怪的视觉错误

+0

不可能说没有你的代码 - 请[编辑您的问题(http://stackoverflow.com/posts/40878738/edit),包括它。 – Comintern

+2

“我的VBA代码或错误。”作为一般的经验法则 - 它是你的代码。在我有生之年,我犯了数千个编程错误,但只遇到了编程语言实现或主要软件工具出现少量错误的情况。 –

+0

尝试“编辑”sheet1上应该是空白但显示内容的单元格之一 - 它在编辑时是否显示单元格中的现有值?保存文件并重新打开后问题是否消失? (我的直觉是它是一个内存问题,甚至可能与Excel本身没有关系。) – YowE3K

回答

0

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

貌似YowE3k是正确的,这是具体到我的电脑