我已经成功地完成了一项宏观工作,可以做我需要做的事情,但我想做得更好,而且不能.
- 此位有效 - 通过单击excel中的按钮,用户将特定工作表导出到具有动态文件名的csv,并将csv保存在预定目录中.
- 它可以这样做 - 而不是保存到预定的目录,我可以显示浏览窗口,以便他们可以选择一个目录,以便保存到?我无法弄清楚如何做到这一点.
这是我的宏:
Sub Export()
Dim MyPath As String
Dim MyFileName As String
MyPath = "C:\importtest"
MyFileName = "MR_Update_" & Sheets("Monthly Review").Range("D3").Value & "_" & Format(Date, "ddmmyyyy")
If Not Right(MyPath, 1) = "\" Then MyPath = MyPath & "\"
If Not Right(MyFileName, 4) = ".csv" Then MyFileName = MyFileName & ".csv"
Sheets("Export Data").Copy
With ActiveWorkbook
.SaveAs Filename:= _
MyPath & MyFileName, _
FileFormat:=xlCSV, _
CreateBackup:=False
.Close False
End With
End Sub
Run Code Online (Sandbox Code Playgroud) 我一直在阅读 SQL Server 中的 MERGE 语法,它非常适合我需要它做的事情,但是我一生都无法弄清楚如何防止目标表删除我不想删除的旧数据比赛对抗。
我在 Target 中有 1100 万行,我只想匹配今年大约 30 万行的更改。显然这将是巨大的性能差异。
我的代码:
MERGE [dbo].[RE_Gifts_Backup_testing] as Target --[TARGET is main table]
USING [dbo].[RE_Gifts_CY_Changes] as Source --[SOURCE is data with new changes]
ON (Target.gift_id = Source.gift_id) -- What are we matching rows on.
--When rows are matched, update the records if there is any change
WHEN MATCHED
AND year(Target.gift_date) = '2016'
AND year(Source.Gift_Date) = '2016'
AND (TARGET.[Constituent_ID] <> SOURCE.[Constituent_ID]
OR TARGET.[RE_Gift_ID] <> SOURCE.[RE_Gift_ID]
OR TARGET.[Gift_ID] <> SOURCE.[Gift_ID]
OR TARGET.[Gift_Date_Added] <> …Run Code Online (Sandbox Code Playgroud)