﻿# Visual Studio 2010 快速文字編輯技巧：區塊選取與多行編輯

今天從客戶端拿到一份 Excel 文件，客戶整理出來希望我們將裡面的資料從資料庫中刪除，由於該資料是一連串的**統一編號**(**Unique Key**)，而且客戶提供的資料都是一行一行的且有 500 筆之多，要如何才能快速轉換成可執行的 T-SQL 指令呢？當下我的腦子裡立即浮現多種解決方案，有 [Notepad++](http://notepad-plus-plus.org/) 的 **正則表示式**(**Regular Expression**)，也有 Visual Studio 2010 的 **區塊選取**(**Box Selection**) 與 **多行編輯**(**Multi-Line Editing**) 功能功能，兩者都很容易，你要你熟悉工具的話都可以快速解決問題。

由於我們最後要產生的 T-SQL 長的像如下的樣子：

```
DELETE FROM [dbo].[Table1] WHERE [統一編號] IN ( '12345678', '87654321', ... )
```

所以我們要把 Excel 中的「統一編號」欄位的內容轉成如上 T-SQL 在 **IN** 字句中裡的格式：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/03ae8b3fa0571373eb88-image.png)

**方法一：將統一編號資料複製到 Notepad++ 裡，再利用 Regular Expression 做替換**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/88b998507cdd10928304-image.png)

**方法二：將統一編號資料複製到 Visual Studio 2010 文字編輯區，再利用區塊選取功能做批次編輯**

由於筆數眾多，區塊選取功能透過滑鼠操作比較沒效率（即按住 Alt 鍵不放再用滑鼠選取第一欄），我們改用純鍵盤操作。

先按下 **Alt** 與 **Shift** 鍵不放，然後按方向鍵的 **↓** 鍵 ( 我沒有要罵人的意思，別誤會 XD )

 ![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/bd351159f58c21d03b77-image.png)

此時，**Alt** 鍵放開（注意: **Shift** 鍵還不要放），這時用右手來按 **Ctrl + End** 鍵，這時即可從頭選到尾，而且只選取每一列的第一個字元的位置，如下圖示：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/42b43ecbe4307bfd8979-image.png)

這時我們按下一個 **單引號** ( ‘ ) 即可在這數百行的統編最前面加上一個 **單引號** ( ‘ )

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/05fc995784e99c3a8e01-image.png)

接著我們按下 **Ctrl + Home** 回到第一列，並定位到第一列的最後一個字元，一樣重複著上述的動作

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/d65f20f4f8330912804b-image.png)

只是按下 **Ctrl + End** 鍵時會變成選取所有資料

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/2f818b367470bdec48f3-image.png)

這時 **Shift** 鍵還不要放，改用方向鍵移動到右邊欄位，變成下圖的樣子：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/e89f52992b93494d04a7-image.png)

最後再按下 **‘,** 即可完成批次編輯，最後再將最後一行多餘的無效行刪除即可

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/f74666f56448bd39d062-image.png)

這時 T-SQL 的 **IN** 字句的內容已經編輯完成，這時再去 Management Studio 執行刪除命令即可！

**結語**

所以 Visual Studio 2010 的 **區塊選取**(**Box Selection**) 與 **多行編輯**(**Multi-Line Editing**) 功能不只可以拿來做程式碼編輯，用來當作一般文字的編輯也是很好用的工具，像我也經常使用 Visual Studio 的巨集來幫我快速處理一些大量文字編輯的工作。

**相關連結**

-   [\[Visual Studio\]Visual Studio 2010 New Feature – Box Selection With Multi-Line Editing](https://dotblogs.com.tw/larrynung/2010/03/18/14090)
-   [Box Selection and Multi-Line Editing with VS 2010](https://weblogs.asp.net/scottgu/box-selection-and-multi-line-editing-with-vs-2010)
-   [Notepad++](http://notepad-plus-plus.org/)
