Sql VBA在数据库同步后保留信息
所以,在一个工作簿中,我有两个工作表:一个是一个充满了链接到SQL数据库的想法的表,另一个是从该表中选择的某些想法 从数据库表中,我想将符合特定条件的想法复制到第二个表中。在那里,用户会给他们一些数字排名Sql VBA在数据库同步后保留信息,sql,excel,vba,Sql,Excel,Vba,所以,在一个工作簿中,我有两个工作表:一个是一个充满了链接到SQL数据库的想法的表,另一个是从该表中选择的某些想法 从数据库表中,我想将符合特定条件的想法复制到第二个表中。在那里,用户会给他们一些数字排名 Idea 1 0 4 5 3 8 Idea 2 7 5 1 5 4 Idea 3 1 2 8 8 2 在一个包含按钮的时钟上,我想更新数据库表,并将任何新想法复制到评分表中,这样它可能类似于以下内容 I
Idea 1 0 4 5 3 8
Idea 2 7 5 1 5 4
Idea 3 1 2 8 8 2
在一个包含按钮的时钟上,我想更新数据库表,并将任何新想法复制到评分表中,这样它可能类似于以下内容
Idea 1 0 4 5 3 8
Idea 2 7 5 1 5 4
Idea 3 1 2 8 8 2
New Idea1
New Idea2
我怎样才能完成这个复制?我无法想象一种不覆盖已经包含的收视率的方法
密码
用于将所有ID号复制到评级表的代码
Sub CopyFilter()
Dim rng As Range
Dim rng2 As Range
With ActiveSheet.AutoFilter.Range
On Error Resume Next
Set rng2 = .Offset(1, 0).Resize(.Rows.Count - 1, 1) _
.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
End With
If rng2 Is Nothing Then
MsgBox "No data to copy"
Else
Set rng = Worksheets("Ideas").ListObjects("IdeasTable"). _
ListColumns(1).DataBodyRange
rng.Offset(1, 0).Resize(rng.Rows.Count - 1).Copy
Worksheets("WFNs").Range("B5").PasteSpecial Paste:=xlPasteFormulas, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
ActiveSheet.ShowAllData
Worksheets("WFNs").Activate
End Sub
您需要做的是,保存有关插入内容的信息。 首先,声明如下所示的全局变量:
Dim startRow as Long
在您的sub中:
If startRow = 0 Then
startRow = 1
End If
With ActiveSheet.AutoFilter.Range
On Error Resume Next
Set rng2 = .Offset(startRow, 0).Resize(.Rows.Count - 1, 1) _
.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
End With
不总是复制整个范围,而是只复制新条目。
现在已经有了起始行,您可以在if中使用该行在旧日期之后粘贴数据:
Else
Set rng = Worksheets("Ideas").ListObjects("IdeasTable"). _
ListColumns(1).DataBodyRange
rng.Offset(startRow, 0).Resize(rng.Rows.Count - 1).Copy
Worksheets("WFNs").Range("B" & (startRow + 4)).PasteSpecial Paste:=xlPasteFormulas, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
startRow = rng.Rows.Count - 1
End If
我只是换了几行,里面有startRow。未经测试 到目前为止你试过什么?为什么你认为旧的想法会被改写?我对VBA很陌生,我能想象的唯一方法是对源表进行排序,只留下所需的条目,然后将它们复制到排序表中。如果已有想法,它们将被覆盖,因为我不能保证它们的顺序相同,或者新想法将出现在列表的末尾。您是否尝试过一些可以发布的代码?您可以仅从表中选择新项目,也可以将旧项目保存在变量中,并将旧项目与新项目进行比较。我如何仅复制新行?您的描述太笼统了。提供一些代码,以便我们有一个起点。如果您有更多问题,请提问: