Lee*_* Y. 0 sql-server excel vba
我在 Excel 中有一个任意长的一列列表。我需要将此列表放在 SQL 服务器的 where 语句中。
有一种手动方法可以做到这一点: list 从A1 until A40. 使用B1="'"&A1&"',". 这将列表的每个元素包含在'',. NextC1=B1 and C2=C1&B2..C40=C39&B40
列表中的最后一个元素将被,手动删除。
Where recipID in ('1865','1733','1990')
如果我每年这样做一两次,一切都很好。但它变得越来越常规。我可以录制一个宏并以此为基础。但是,我更在寻找一个 2 合 1 宏,它不仅可以为 SQL 准备数据,还可以复制到剪贴板 - 这样唯一需要的操作就是选择列表、运行宏并粘贴到 SQL 中。
您可以使用此数组公式:
=LEFT(CONCAT("'"&A1:A40&"',"),LEN(CONCAT("'"&A1:A40&"',"))-1)
Run Code Online (Sandbox Code Playgroud)
输入公式并按 CTRL+SHIFT+ENTER 将数组常量作为数组公式输入。(当您看到公式周围的 {} 时,您就知道它正在起作用)。
您也可以像平常一样在它周围添加括号。
="("&LEFT(CONCAT("'"&A1:A40&"',"),LEN(CONCAT("'"&A1:A40&"',"))-1)&")"
Run Code Online (Sandbox Code Playgroud)
适用于: Excel 2016 Excel 2016 for Mac Excel Online Excel for iPad Excel for iPhone Excel for Android 平板电脑 Excel Mobile Excel for Android 手机
CONCAT 的替代方法是Chip Pearson 的 StringConcat(),它可以产生相同的结果。
| 归档时间: |
|
| 查看次数: |
7684 次 |
| 最近记录: |