2016-04-29 19 views
6
Sheet.get_Range(
"D2", 
string.Format("D{0}", MAX_ROWS)).Validation 
    .Add(E.XlDVType.xlValidateList, 
     Type.Missing, 
     E.XlFormatConditionOperator.xlBetween, 
     string.Join(",", CountryCollection.Select(x=>x.CountryName.Replace(",",")).ToArray())); 

上記のコードは、新しく開いたExcelファイルでドロップダウンリストを生成するのに役立ちますが、ユーザー保存シートを使用すると、ドロップダウンリストは表示されなくなります。ユーザーが行った変更はそのまま残りますが、ドロップダウンリストは消えてしまいます。何か案が?保存後にMicrosoft Excelのドロップダウンリストが消えましたか?

アップデート:現在、ドロップダウンリストが検証はならないように、私は上記のコードをコメントアウトしようとしたため、以下のコード

void WB_BeforeSave(bool SaveAsUI, ref bool Cancel) 
{ 
    workSheet.get_Range(START_CELL, string.Format(END_CELL, MAX_ROWS)).Validation.Delete(); 
} 

にされてしまったという理由を疑っ

ただし、Excelシートを手動で開こうとすると、Microsoft Excelで検証が読み取れないコンテンツであることが検出され、自動的に削除されます。

+4

問題を特定するために、さらに多くのソースコードを提供する必要があります。 –

+3

あなたが使用しているライブラリを共有する[MCVE] –

+0

も提供してください – Patel

答えて

0

excelを.xlsx形式で保存してみてください。正しいファイル形式が選択されていないと、一部の動作が有効になりません。

+0

' .xlsx'でも '.xls'でも動作しません –

+0

はありませんあなたは手動で保存すると正常に動作しますか? – tharif

+0

はい、 'validation'メソッドを使用して手動でドロップダウンリストを作成し、手動で保存すると、ドロップダウンリストが維持され、アクセス可能になります。 –

関連する問題