我正在尝试将Excel中的数据列一次粘贴到SQL Server中。列中的每个单元格都包含一个公式,如果另一个工作表中的某个单元格不为空,则输出一个SQL脚本。如果为空,则输出空白值(“”)。在将其粘贴到SQL Server中的新查询之前,我使用按钮选择并复制此数据(每个数据列都有一个按钮)。 SQL脚本提供了其他工作表中单元格的值 - 每列数据代表不同的工作表,列中的每个单元格指的是它所代表的工作表中的单个单元格值。
但是,每次粘贴数据时,它都包含空白值,显示为空格。
我已经尝试重新编程VBA中的按钮,以便它不会选择具有空白值的单元格,但到目前为止还没有任何工作。我以各种不同的方式使用了SpecialCells方法,但没有成功。
以下是我的按钮的当前代码示例:
Sub SchemeCondition_Click()
Range("E2:E201").Select
Selection.Copy
End Sub
以下是我在按钮复制的每个单元格中的公式示例:
=IF(SchemeCondition!A2<>"","USE [PRSMaster] INSERT INTO SchemeCondition
(SchemeID, ConditionTypeID, Active, Comorbidity) VALUES(" & SchemeCondition!C2 & ",
" & SchemeCondition!D2 & ", " & SchemeCondition!E2 & ", " & SchemeCondition!F2 & ")","")
我只想在粘贴时停止显示空格,这样我就不必每次都手动删除它。
答案 0 :(得分:0)
Sub Tester()
CopyNonBlanks Selection
End Sub
Sub CopyNonBlanks(rng As Range)
Dim s, c, MyData As DataObject
s = ""
For Each c In rng.Cells
If Len(c.Value) > 0 Then
s = s & IIf(Len(s) > 0, vbNewLine, "") & c.Value
End If
Next c
If Len(s) > 0 Then
'requires reference to `Microsoft forms 2 Object Library`
Set MyData = New DataObject
MyData.SetText s
MyData.PutInClipboard
End If
End Sub